summaryrefslogtreecommitdiff
path: root/perl.c
diff options
context:
space:
mode:
authorDavid Mitchell <davem@iabyn.com>2010-10-03 22:28:28 +0100
committerDavid Mitchell <davem@iabyn.com>2010-10-03 22:29:52 +0100
commit2ba65d5fcc3ac0e8cf3fd24ff6b1082f772a8545 (patch)
treef8c17c9e7033ce692c03fb755caeec0d93738d51 /perl.c
parenta5addb167c102dc5dcd1ab886caf0cb4f554eb05 (diff)
downloadperl-2ba65d5fcc3ac0e8cf3fd24ff6b1082f772a8545.tar.gz
eval_sv: followup fix to 4aca2f62ef
My original fix broke the 'goto redo_body' path. Not that anything tests for this!
Diffstat (limited to 'perl.c')
-rw-r--r--perl.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/perl.c b/perl.c
index ca5aea67d5..db950d5731 100644
--- a/perl.c
+++ b/perl.c
@@ -2710,10 +2710,11 @@ Perl_eval_sv(pTHX_ SV *sv, I32 flags)
switch (ret) {
case 0:
redo_body:
- assert(PL_op == (OP*)(&myop));
- PL_op = PL_ppaddr[OP_ENTEREVAL](aTHX);
- if (!PL_op)
- goto fail; /* failed in compilation */
+ if (PL_op == (OP*)(&myop)) {
+ PL_op = PL_ppaddr[OP_ENTEREVAL](aTHX);
+ if (!PL_op)
+ goto fail; /* failed in compilation */
+ }
CALLRUNOPS(aTHX);
retval = PL_stack_sp - (PL_stack_base + oldmark);
if (!(flags & G_KEEPERR)) {