summaryrefslogtreecommitdiff
path: root/sv.c
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.c
parent601dfd0af0604fa7ed2cabe7f33a232b9b3908c0 (diff)
downloadperl-6e1287864cd02fb6f429f12a995e1c08e03572b9.tar.gz
In the SV body, exchange the positions of the NV and stash/magic.
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sv.c b/sv.c
index f82c82c47e..016a1420c1 100644
--- a/sv.c
+++ b/sv.c
@@ -915,8 +915,9 @@ static const struct body_details bodies_by_type[] = {
},
/* 8 bytes on most ILP32 with IEEE doubles */
- { sizeof(NV), sizeof(NV), 0, SVt_NV, FALSE, HADNV, HASARENA,
- FIT_ARENA(0, sizeof(NV)) },
+ { sizeof(NV), sizeof(NV),
+ STRUCT_OFFSET(XPVNV, xnv_u),
+ SVt_NV, FALSE, HADNV, HASARENA, FIT_ARENA(0, sizeof(NV)) },
/* 8 bytes on most ILP32 with IEEE doubles */
{ sizeof(XPV),
@@ -933,11 +934,11 @@ static const struct body_details bodies_by_type[] = {
FIT_ARENA(0, sizeof(XPV)) },
/* 20 */
- { sizeof(XPVNV), copy_length(XPVNV, xiv_u), 0, SVt_PVNV, FALSE, HADNV,
+ { sizeof(XPVNV), copy_length(XPVNV, xnv_u), 0, SVt_PVNV, FALSE, HADNV,
HASARENA, FIT_ARENA(0, sizeof(XPVNV)) },
/* 28 */
- { sizeof(XPVMG), copy_length(XPVMG, xmg_stash), 0, SVt_PVMG, FALSE, HADNV,
+ { sizeof(XPVMG), copy_length(XPVMG, xnv_u), 0, SVt_PVMG, FALSE, HADNV,
HASARENA, FIT_ARENA(0, sizeof(XPVMG)) },
/* something big */
@@ -957,13 +958,13 @@ static const struct body_details bodies_by_type[] = {
HASARENA, FIT_ARENA(0, sizeof(XPVLV)) },
{ sizeof(XPVAV),
- copy_length(XPVAV, xmg_stash),
+ copy_length(XPVAV, xiv_u),
0,
SVt_PVAV, TRUE, NONV, HASARENA,
FIT_ARENA(0, sizeof(XPVAV)) },
{ sizeof(XPVHV),
- copy_length(XPVHV, xmg_stash),
+ copy_length(XPVHV, xiv_u),
0,
SVt_PVHV, TRUE, NONV, HASARENA,
FIT_ARENA(0, sizeof(XPVHV)) },