summaryrefslogtreecommitdiff
path: root/av.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-01-25 13:55:28 +0000
committerNicholas Clark <nick@ccl4.org>2010-05-21 07:03:52 +0100
commit4f7003f5e8adb225a16f3788ec81e193021f41e5 (patch)
treed2f748f90da76ae03cac95ad79c3f37f662ff9e7 /av.h
parent889d28b2ea2c17517fae97cf4a92bd3563aaa74f (diff)
downloadperl-4f7003f5e8adb225a16f3788ec81e193021f41e5.tar.gz
Remove union _xivu from struct xpvav - replace it with a non-union xav_alloc.
This was the only user of xivu_p1 in union _xivu, so remove that too.
Diffstat (limited to 'av.h')
-rw-r--r--av.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/av.h b/av.h
index f9af3ce616..5231c4d4ce 100644
--- a/av.h
+++ b/av.h
@@ -13,11 +13,9 @@ struct xpvav {
union _xmgu xmg_u;
SSize_t xav_fill; /* Index of last element present */
SSize_t xav_max; /* max index for which array has space */
- union _xivu xiv_u;
+ SV** xav_alloc; /* pointer to beginning of C array of SVs */
};
-/* SV** xav_alloc; */
-#define xav_alloc xiv_u.xivu_p1
/* SV* xav_arylen; */
/* SVpav_REAL is set for all AVs whose xav_array contents are refcounted.
@@ -59,7 +57,7 @@ Same as C<av_len()>. Deprecated, use C<av_len()> instead.
#endif
#define AvARRAY(av) ((av)->sv_u.svu_array)
-#define AvALLOC(av) (*((SV***)&((XPVAV*) SvANY(av))->xav_alloc))
+#define AvALLOC(av) ((XPVAV*) SvANY(av))->xav_alloc
#define AvMAX(av) ((XPVAV*) SvANY(av))->xav_max
#define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill
#define AvARYLEN(av) (*Perl_av_arylen_p(aTHX_ MUTABLE_AV(av)))