diff options
-rw-r--r-- | sv.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -10681,6 +10681,21 @@ Perl_ss_dup(pTHX_ PerlInterpreter *proto_perl, CLONE_PARAMS* param) #endif break; } + case SAVEt_COP_WARNINGS: + { + void *optr = POPPTR(ss,ix); + TOPPTR(nss,ix) = ptr = any_dup(optr, proto_perl); + if (ptr != optr) { + /* We duped something in the interpreter structure. */ + ptr = POPPTR(ss,ix); + TOPPTR(nss,ix) = DUP_WARNINGS((STRLEN*)ptr); + } else { + /* I don't think that this happens, but it would mean that + we (didn't) dup something shared. */ + ptr = POPPTR(ss,ix); + TOPPTR(nss,ix) = ptr; + } + } default: Perl_croak(aTHX_ "panic: ss_dup inconsistency (%"IVdf")", (IV) i); } |