diff options
author | Nicholas Clark <nick@ccl4.org> | 2010-01-25 09:27:56 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2010-05-21 07:03:51 +0100 |
commit | 6e1287864cd02fb6f429f12a995e1c08e03572b9 (patch) | |
tree | 26a68af882fe54347da6600cc410256b1d6cc625 /sv.h | |
parent | 601dfd0af0604fa7ed2cabe7f33a232b9b3908c0 (diff) | |
download | perl-6e1287864cd02fb6f429f12a995e1c08e03572b9.tar.gz |
In the SV body, exchange the positions of the NV and stash/magic.
Diffstat (limited to 'sv.h')
-rw-r--r-- | sv.h | 25 |
1 files changed, 12 insertions, 13 deletions
@@ -394,8 +394,9 @@ perform the upgrade if necessary. See C<svtype>. /* RV upwards. However, SVf_ROK and SVp_IOK are exclusive */ #define SVprv_WEAKREF 0x80000000 /* Weak reference */ -#define _XPV_HEAD \ - union _xnvu xnv_u; \ +#define _XPV_HEAD \ + HV* xmg_stash; /* class package */ \ + union _xmgu xmg_u; \ STRLEN xpv_cur; /* length of svu_pv as a C string */ \ STRLEN xpv_len /* allocated size */ @@ -449,23 +450,20 @@ struct xpvuv { struct xpvnv { _XPV_HEAD; union _xivu xiv_u; + union _xnvu xnv_u; }; -#define _XPVMG_HEAD \ - union _xivu xiv_u; \ - union _xmgu xmg_u; \ - HV* xmg_stash /* class package */ - /* This structure must match the beginning of struct xpvhv in hv.h. */ struct xpvmg { _XPV_HEAD; - _XPVMG_HEAD; + union _xivu xiv_u; + union _xnvu xnv_u; }; struct xpvlv { _XPV_HEAD; - _XPVMG_HEAD; - + union _xivu xiv_u; + union _xnvu xnv_u; STRLEN xlv_targoff; STRLEN xlv_targlen; SV* xlv_targ; @@ -477,7 +475,8 @@ struct xpvlv { Boyer-Moore. */ struct xpvgv { _XPV_HEAD; - _XPVMG_HEAD; + union _xivu xiv_u; + union _xnvu xnv_u; }; /* This structure must match XPVCV in cv.h */ @@ -485,6 +484,7 @@ struct xpvgv { typedef U16 cv_flags_t; #define _XPVCV_COMMON \ + union _xivu xiv_u; \ HV * xcv_stash; \ union { \ OP * xcv_start; \ @@ -505,7 +505,6 @@ typedef U16 cv_flags_t; struct xpvfm { _XPV_HEAD; - _XPVMG_HEAD; _XPVCV_COMMON; }; @@ -541,7 +540,7 @@ struct xpvfm { struct xpvio { _XPV_HEAD; - _XPVMG_HEAD; + union _xivu xiv_u; _XPVIO_TAIL; }; |