summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2005-06-17 17:30:19 +0000
committerNicholas Clark <nick@ccl4.org>2005-06-17 17:30:19 +0000
commit9a085840b61c988c67da62e325f4b1facaf9783d (patch)
tree9849543f628268892921722da5e3513e97681271
parentbf1320bff8abe0e26a9c5974e9dbbb03ae5ebd12 (diff)
downloadperl-9a085840b61c988c67da62e325f4b1facaf9783d.tar.gz
Change 24886 was buggy - should be taking (and passing in) the
address of the arena. p4raw-id: //depot/perl@24890
-rw-r--r--sv.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/sv.c b/sv.c
index a14026dda7..66094a2127 100644
--- a/sv.c
+++ b/sv.c
@@ -1333,7 +1333,7 @@ Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt)
NV nv;
MAGIC* magic;
HV* stash;
- void* old_body_arena;
+ void** old_body_arena;
size_t old_body_offset;
size_t old_body_length; /* Well, the length to copy. */
void* old_body;
@@ -1380,7 +1380,7 @@ Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt)
break;
case SVt_NV:
nv = SvNVX(sv);
- old_body_arena = PL_xnv_root;
+ old_body_arena = (void **) &PL_xnv_root;
old_body_length = sizeof(NV);
zero_nv = FALSE;
@@ -1394,7 +1394,7 @@ Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt)
pv = SvPVX_mutable(sv);
cur = SvCUR(sv);
len = SvLEN(sv);
- old_body_arena = PL_xpv_root;
+ old_body_arena = (void **) &PL_xpv_root;
old_body_offset = STRUCT_OFFSET(XPV, xpv_cur)
- STRUCT_OFFSET(xpv_allocated, xpv_cur);
old_body_length = sizeof(XPV) - old_body_offset;
@@ -1408,7 +1408,7 @@ Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt)
cur = SvCUR(sv);
len = SvLEN(sv);
iv = SvIVX(sv);
- old_body_arena = PL_xpviv_root;
+ old_body_arena = (void **) &PL_xpviv_root;
old_body_offset = STRUCT_OFFSET(XPVIV, xpv_cur)
- STRUCT_OFFSET(xpviv_allocated, xpv_cur);
old_body_length = sizeof(XPVIV) - old_body_offset;
@@ -1419,7 +1419,7 @@ Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt)
len = SvLEN(sv);
iv = SvIVX(sv);
nv = SvNVX(sv);
- old_body_arena = PL_xpvnv_root;
+ old_body_arena = (void **) &PL_xpvnv_root;
old_body_length = sizeof(XPVNV);
zero_nv = FALSE;
break;
@@ -1439,7 +1439,7 @@ Perl_sv_upgrade(pTHX_ register SV *sv, U32 mt)
nv = SvNVX(sv);
magic = SvMAGIC(sv);
stash = SvSTASH(sv);
- old_body_arena = PL_xpvmg_root;
+ old_body_arena = (void **) &PL_xpvmg_root;
old_body_length = sizeof(XPVMG);
zero_nv = FALSE;
break;