diff options
author | David Mitchell <davem@iabyn.com> | 2006-05-17 18:38:16 +0100 |
---|---|---|
committer | Steve Hay <SteveHay@planit.com> | 2006-05-17 17:06:26 +0000 |
commit | d8d97e7036087008232bf8da77755f2ab9da8b29 (patch) | |
tree | 76f3a1199760ef630c33ba2812dea607086bb996 | |
parent | c70c17014268a520cc228ac35b4f4bb6b1372ee7 (diff) | |
download | perl-d8d97e7036087008232bf8da77755f2ab9da8b29.tar.gz |
Re: [perl #39145] win32, @_ and fork crashing in dounwind
Message-ID: <20060517163816.GN17109@iabyn.com>
(Dave's fix, plus a test taken from [perl #39145])
p4raw-id: //depot/perl@28215
-rw-r--r-- | sv.c | 2 | ||||
-rwxr-xr-x | t/op/fork.t | 6 |
2 files changed, 8 insertions, 0 deletions
@@ -10271,6 +10271,8 @@ Perl_cx_dup(pTHX_ PERL_CONTEXT *cxs, I32 ix, I32 max, CLONE_PARAMS* param) ncx->blk_sub.hasargs = cx->blk_sub.hasargs; ncx->blk_sub.lval = cx->blk_sub.lval; ncx->blk_sub.retop = cx->blk_sub.retop; + ncx->blk_sub.oldcomppad = (PAD*)ptr_table_fetch(PL_ptr_table, + cx->blk_sub.oldcomppad); break; case CXt_EVAL: ncx->blk_eval.old_in_eval = cx->blk_eval.old_in_eval; diff --git a/t/op/fork.t b/t/op/fork.t index 588d88b153..b344990fd6 100755 --- a/t/op/fork.t +++ b/t/op/fork.t @@ -462,3 +462,9 @@ if ($pid == 0) { } EXPECT 1 +######## +# [perl #39145] Perl_dounwind() crashing with Win32's fork() emulation +sub { @_ = 3; fork ? die "1\n" : die "1\n" }->(2); +EXPECT +1 +1 |