diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-03-31 19:30:09 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-03-31 19:30:09 +0000 |
commit | a8f8b6a7ca709d640a0de17910dcda7bb53b8cf5 (patch) | |
tree | 635e0c746ce339abe8dac35bf3cc8957f918eb99 /sv.c | |
parent | 9ddc1e7af8675795ad0346c1274fd40d4096c50f (diff) | |
download | perl-a8f8b6a7ca709d640a0de17910dcda7bb53b8cf5.tar.gz |
Need to dup any hints HV stored on the save stack.
p4raw-id: //depot/perl@27650
Diffstat (limited to 'sv.c')
-rw-r--r-- | sv.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -10580,8 +10580,10 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS* param) TOPINT(nss,ix) = i; ptr = POPPTR(ss,ix); TOPPTR(nss,ix) = Perl_refcounted_he_dup(aTHX_ ptr, param); - /* FIXME - either dup the conditionally saved HV, or eliminate - it by recreating eval's %^H from the cop */ + if (i & HINT_LOCALIZE_HH) { + hv = (HV*)POPPTR(ss,ix); + TOPPTR(nss,ix) = hv_dup_inc(hv, param); + } break; case SAVEt_COMPPAD: av = (AV*)POPPTR(ss,ix); |