X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=av.h;h=06ecc7a656027f1ffb90a53081c5ae49ffd9734d;hb=5b6782b28b8a9d505447276bdd3de3a802f641dd;hp=15ca6977d6ae040dbef6d99d552f23439b49a8de;hpb=8c18259e23fd9d5fd07b5221a1df53c2111ce455;p=p5sagit%2Fp5-mst-13.2.git diff --git a/av.h b/av.h index 15ca697..06ecc7a 100644 --- a/av.h +++ b/av.h @@ -1,7 +1,7 @@ /* av.h * * Copyright (C) 1991, 1992, 1993, 1995, 1996, 1997, 1998, 1999, - * 2000, 2001, 2002, 2005, by Larry Wall and others + * 2000, 2001, 2002, 2005, 2006, 2007, by Larry Wall and others * * You may distribute under the terms of either the GNU General Public * License or the Artistic License, as specified in the README file. @@ -9,21 +9,35 @@ */ struct xpvav { - NV xnv_nv; /* numeric value, if any */ + union { + NV xnv_nv; /* numeric value, if any */ + HV * xgv_stash; + struct { + U32 xlow; + U32 xhigh; + } xpad_cop_seq; /* used by pad.c for cop_sequence */ + struct { + U32 xbm_previous; /* how many characters in string before rare? */ + U8 xbm_flags; + U8 xbm_rare; /* rarest character in string */ + } xbm_s; /* fields from PVBM */ + } xnv_u; SSize_t xav_fill; /* Index of last element present */ SSize_t xav_max; /* max index for which array has space */ union { IV xivu_iv; /* integer value or pv offset */ UV xivu_uv; void * xivu_p1; + I32 xivu_i32; + HEK * xivu_namehek; } xiv_u; - MAGIC* xmg_magic; /* magic for scalar array */ + union { + MAGIC* xmg_magic; /* linked list of magicalness */ + HV* xmg_ourstash; /* Stash for our (when SvPAD_OUR is true) */ + } xmg_u; HV* xmg_stash; /* class package */ }; -#if 0 -typedef struct xpvav xpvav_allocated; -#else typedef struct { SSize_t xav_fill; /* Index of last element present */ SSize_t xav_max; /* max index for which array has space */ @@ -31,11 +45,15 @@ typedef struct { IV xivu_iv; /* integer value or pv offset */ UV xivu_uv; void * xivu_p1; + I32 xivu_i32; + HEK * xivu_namehek; } xiv_u; - MAGIC* xmg_magic; /* magic for scalar array */ + union { + MAGIC* xmg_magic; /* linked list of magicalness */ + HV* xmg_ourstash; /* Stash for our (when SvPAD_OUR is true) */ + } xmg_u; HV* xmg_stash; /* class package */ } xpvav_allocated; -#endif /* SV** xav_alloc; */ #define xav_alloc xiv_u.xivu_p1