summaryrefslogtreecommitdiff
path: root/av.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-05-23 20:26:35 +0000
committerNicholas Clark <nick@ccl4.org>2005-05-23 20:26:35 +0000
commit9f1501b2c542cf2dc1feaf9b0d1d694acd6c0807 (patch)
tree41f8d88d51866dba4f84909fd7dcf1c4cef398a7 /av.h
parent0bb78401313e0347fd894143d813c3036c2eccb4 (diff)
downloadperl-9f1501b2c542cf2dc1feaf9b0d1d694acd6c0807.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.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/av.h b/av.h
index cc5dd5e055..05e09c5698 100644
--- a/av.h
+++ b/av.h
@@ -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