summaryrefslogtreecommitdiff
path: root/sv.h
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2010-01-25 09:27:56 +0000
committerNicholas Clark <nick@ccl4.org>2010-05-21 07:03:51 +0100
commit6e1287864cd02fb6f429f12a995e1c08e03572b9 (patch)
tree26a68af882fe54347da6600cc410256b1d6cc625 /sv.h
parent601dfd0af0604fa7ed2cabe7f33a232b9b3908c0 (diff)
downloadperl-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.h25
1 files changed, 12 insertions, 13 deletions
diff --git a/sv.h b/sv.h
index 40da47b499..f88f139a0e 100644
--- a/sv.h
+++ b/sv.h
@@ -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;
};