further fix for RT #23810
authorDavid Mitchell <davem@iabyn.com>
Mon, 17 May 2010 23:54:50 +0000 (00:54 +0100)
committerDavid Mitchell <davem@iabyn.com>
Mon, 17 May 2010 23:54:50 +0000 (00:54 +0100)
commitc86ffc3299ed26fc3616b4d2bb0abdf2e70a0ad1
tree20c0f5dfcddd3da2880abf14aadee17d6c4b0436
parent7eb4f9b7b5bb8d1dc09764c85ca57bc61f5b6f92
further fix for RT #23810

The fix for #23810, 27e904532594b7fb, introduced a regression, spotted by
Nicholas as RT #75146.

Basically, in S_doeval() if the yyparse() fails due to dying (rather than
just bailing out with with a syntax error, say), then the topmost EVAL
context will have been popped. My improved error handling code mostly
understood the difference, but forgot that in the die case, PL_eval_root
will have been restored to its previous value by the CX pop, and thus
its value shouldn't be messed with.
pp_ctl.c
t/run/fresh_perl.t