U8 xav_flags;
};
+
+/* AVf_REAL is set for all AVs whose xav_array contents are refcounted.
+ * Some things like "@_" and the scratchpad list do not set this, to
+ * indicate that they are cheating (for efficiency) by not refcounting
+ * the AV's contents.
+ *
+ * AVf_REIFY is only meaningful on such "fake" AVs (i.e. where AVf_REAL
+ * is not set). It indicates that the fake AV is capable of becoming
+ * real if the array needs to be modified in some way. Functions that
+ * modify fake AVs check both flags to call av_reify() as appropriate.
+ *
+ * Note that the Perl stack has neither flag set. (Thus, items that go
+ * on the stack are never refcounted.)
+ *
+ * These internal details are subject to change any time. AV
+ * manipulations external to perl should not care about any of this.
+ * GSAR 1999-09-10
+ */
#define AVf_REAL 1 /* free old entries */
#define AVf_REIFY 2 /* can become real */
+
+/* XXX this is not used anywhere */
#define AVf_REUSED 4 /* got undeffed--don't turn old memory into SVs now */
#define Nullav Null(AV*)