diff options
author | Nicholas Clark <nick@ccl4.org> | 2005-05-23 20:26:35 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2005-05-23 20:26:35 +0000 |
commit | cffaba4fbd923c68cbf8bcdfd7cfb219ca5da492 (patch) | |
tree | 41f8d88d51866dba4f84909fd7dcf1c4cef398a7 /av.h | |
parent | 6b22d48ff158fbfee204b917a8ce06cd20203ff2 (diff) | |
download | perl-cffaba4fbd923c68cbf8bcdfd7cfb219ca5da492.tar.gz |
Don't allocate an IV slot where the type doesn't use the IV slot.
p4raw-id: //depot/perl@24557
Diffstat (limited to 'av.h')
-rw-r--r-- | av.h | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -26,7 +26,26 @@ struct xpvav { 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 */ + union { + NV xnvu_nv; + struct { + void *xnv_p1; /* pointer to beginning of C array of SVs */ + union { + void *xnv_p2; + IV xnv_i2; + } xnv_u2; + } xnv_s; + } xnv_u; + MAGIC* xmg_magic; /* magic for scalar array */ + HV* xmg_stash; /* class package */ +} xpvav_allocated; +#endif /* SV** xav_alloc; */ #define xav_alloc xnv_u.xnv_s.xnv_p1 |