summaryrefslogtreecommitdiff
path: root/embed.fnc
diff options
context:
space:
mode:
authorDave Mitchell <davem@fdisolutions.com>2007-07-10 23:51:58 +0000
committerDave Mitchell <davem@fdisolutions.com>2007-07-10 23:51:58 +0000
commit410be5dba347e0340059d489e15d034982d73278 (patch)
tree693e2b2bdd6ebf4b9c21665d58a6b92260342598 /embed.fnc
parent131c565afbb207eedaa0a3a4458b1e0ef2716db7 (diff)
downloadperl-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.fnc2
1 files changed, 1 insertions, 1 deletions
diff --git a/embed.fnc b/embed.fnc
index 93c0a2ec67..022b683085 100644
--- a/embed.fnc
+++ b/embed.fnc
@@ -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