Context + sub

The context setup for a Perl or XS subroutine does at entersub:

ENTER; PUSHBLOCK(cx, CXt_SUB, SP); PUSHSUB(cx); cx->blk_sub.retop = PL_op->op_next; CvDEPTH(cv)++; SAVECOMPPAD(); PAD_SET_CUR_NOSAVE(CvPADLIST(cv), CvDEPTH(cv)); /* push args */ /* call sub */ and at leavesub /* pop return value(s) */ POPBLOCK(cx,newpm); LEAVE; cxstack_ix--; POPSUB(cx,sv); /* release CV and @_ ... */ PL_curpm = newpm; /* ... and pop $1 et al */ LEAVESUB(sv); return cx->blk_sub.retop;

illguts-0.42
1998 Gisle Aas, 2009 Reini Urban
22/23
/\