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 /proto.h | |
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 'proto.h')
-rw-r--r-- | proto.h | 4 |
1 files changed, 1 insertions, 3 deletions
@@ -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) |