/* subroutine context */
struct block_sub {
- CV * cv;
OP * retop; /* op to execute on exit from sub */
+ /* Above here is the same for sub, format and eval. */
+ CV * cv;
U8 hasargs;
U8 lval; /* XXX merge lval and hasargs? */
/* Above here is the same for sub and format. */
/* format context */
struct block_format {
- CV * cv;
OP * retop; /* op to execute on exit from sub */
+ /* Above here is the same for sub, format and eval. */
+ CV * cv;
U8 hasargs;
U8 lval; /* XXX merge lval and hasargs? */
/* Above here is the same for sub and format. */
/* eval context */
struct block_eval {
+ OP * retop; /* op to execute on exit from eval */
+ /* Above here is the same for sub, format and eval. */
U8 old_in_eval;
U16 old_op_type;
SV * old_namesv;
OP * old_eval_root;
SV * cur_text;
CV * cv;
- OP * retop; /* op to execute on exit from eval */
JMPENV * cur_top_env; /* value of PL_top_env when eval CX created */
};
if (CxTYPE(cx) == CXt_EVAL || CxTYPE(cx) == CXt_SUB
|| CxTYPE(cx) == CXt_FORMAT)
{
- const OP * const retop = (CxTYPE(cx) == CXt_EVAL)
- ? cx->blk_eval.retop : cx->blk_sub.retop;
+ const OP * const retop = cx->blk_sub.retop;
PerlIO_printf(Perl_debug_log, " retop=%s\n",
retop ? OP_NAME(retop) : "(null)"