diff options
author | Dave Mitchell <davem@fdisolutions.com> | 2007-07-10 23:51:58 +0000 |
---|---|---|
committer | Dave Mitchell <davem@fdisolutions.com> | 2007-07-10 23:51:58 +0000 |
commit | 410be5dba347e0340059d489e15d034982d73278 (patch) | |
tree | 693e2b2bdd6ebf4b9c21665d58a6b92260342598 /embed.fnc | |
parent | 131c565afbb207eedaa0a3a4458b1e0ef2716db7 (diff) | |
download | perl-410be5dba347e0340059d489e15d034982d73278.tar.gz |
Fix assertion failure on failed magic eval - eg FETCH {eval'('}
S_doeval()'s behaviour varies depending on whether the code
compiles or not; on failure it pops the EVAL context block. This
is bad because later on, S_docatch() assumes that the block is
still there. Make docatch() return a boolean instead, indicating
success. The value it formerly returned (the next op) can be deduced
as PL_eval_start or PL_op->op_next on success/failure.
p4raw-id: //depot/perl@31582
Diffstat (limited to 'embed.fnc')
-rw-r--r-- | embed.fnc | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -1320,7 +1320,7 @@ sR |I32 |dopoptosub |I32 startingblock sR |I32 |dopoptosub_at |NN const PERL_CONTEXT* cxstk|I32 startingblock sR |I32 |dopoptowhen |I32 startingblock s |void |save_lines |NULLOK AV *array|NN SV *sv -sR |OP* |doeval |int gimme|NULLOK OP** startop|NULLOK CV* outside|U32 seq +s |bool |doeval |int gimme|NULLOK OP** startop|NULLOK CV* outside|U32 seq sR |PerlIO *|check_type_and_open|NN const char *name|NN const char *mode sR |PerlIO *|doopen_pm |NN const char *name|NN const char *mode sRn |bool |path_is_absolute|NN const char *name |