summaryrefslogtreecommitdiff
path: root/proto.h
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 /proto.h
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 'proto.h')
-rw-r--r--proto.h4
1 files changed, 1 insertions, 3 deletions
diff --git a/proto.h b/proto.h
index e67f028dde..a519ef2f03 100644
--- a/proto.h
+++ b/proto.h
@@ -3546,9 +3546,7 @@ STATIC I32 S_dopoptowhen(pTHX_ I32 startingblock)
STATIC void S_save_lines(pTHX_ AV *array, SV *sv)
__attribute__nonnull__(pTHX_2);
-STATIC OP* S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq)
- __attribute__warn_unused_result__;
-
+STATIC bool S_doeval(pTHX_ int gimme, OP** startop, CV* outside, U32 seq);
STATIC PerlIO * S_check_type_and_open(pTHX_ const char *name, const char *mode)
__attribute__warn_unused_result__
__attribute__nonnull__(pTHX_1)