In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/682bcedc3ef5348ecab8a792e6fcfecb1709b024?hp=c07671d7439660780f82b47a35f6ff224e370dba>
- Log ----------------------------------------------------------------- commit 682bcedc3ef5348ecab8a792e6fcfecb1709b024 Author: David Mitchell <[email protected]> Date: Wed Aug 5 15:25:58 2009 +0100 Revert "add CLONEf_KEEP_PTR_TABLE to win fork emulation." This reverts commit 240bfeb992996de28603a7f9e3ee34ecc6e3f286. (its now fixed in a better way in 136e7e597c0d85149921561591710bc54123b221) M win32/perlhost.h commit b0b93b3c773176a99136baa97661d11503277415 Author: David Mitchell <[email protected]> Date: Wed Aug 5 15:23:41 2009 +0100 in perl_clone_using, free the prt_table *after* we have called any CLONE methods (better fix for Variable::Magic than 240bfeb992) M sv.c ----------------------------------------------------------------------- Summary of changes: sv.c | 11 ++++++----- win32/perlhost.h | 3 +-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sv.c b/sv.c index 8bfe441..a22316c 100644 --- a/sv.c +++ b/sv.c @@ -12349,11 +12349,6 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, PL_registered_mros = hv_dup_inc(proto_perl->Iregistered_mros, param); - if (!(flags & CLONEf_KEEP_PTR_TABLE)) { - ptr_table_free(PL_ptr_table); - PL_ptr_table = NULL; - } - /* Call the ->CLONE method, if it exists, for each of the stashes identified by sv_dup() above. */ @@ -12373,6 +12368,12 @@ perl_clone_using(PerlInterpreter *proto_perl, UV flags, } } + if (!(flags & CLONEf_KEEP_PTR_TABLE)) { + ptr_table_free(PL_ptr_table); + PL_ptr_table = NULL; + } + + SvREFCNT_dec(param->stashes); /* orphaned? eg threads->new inside BEGIN or use */ diff --git a/win32/perlhost.h b/win32/perlhost.h index c02d409..c2473c9 100644 --- a/win32/perlhost.h +++ b/win32/perlhost.h @@ -1836,8 +1836,7 @@ PerlProcFork(struct IPerlProc* piPerl) } h = new CPerlHost(*(CPerlHost*)w32_internal_host); PerlInterpreter *new_perl = perl_clone_using((PerlInterpreter*)aTHX, - CLONEf_COPY_STACKS - | CLONEf_KEEP_PTR_TABLE, + CLONEf_COPY_STACKS, h->m_pHostperlMem, h->m_pHostperlMemShared, h->m_pHostperlMemParse, -- Perl5 Master Repository
