Lines Matching defs:cx

3573     PERL_CONTEXT * cx;
3578 cx = CX_CUR();
3579 cx->cx_type = type;
3580 cx->blk_gimme = gimme;
3581 cx->blk_oldsaveix = saveix;
3582 cx->blk_oldsp = (Stack_off_t)(sp - PL_stack_base);
3584 || CxTYPE(cx-1) == CXt_SUBST
3585 || cx->blk_oldsp >= (cx-1)->blk_oldsp);
3586 cx->blk_oldcop = PL_curcop;
3587 cx->blk_oldmarksp = (I32)(PL_markstack_ptr - PL_markstack);
3588 cx->blk_oldscopesp = PL_scopestack_ix;
3589 cx->blk_oldpm = PL_curpm;
3590 cx->blk_old_tmpsfloor = PL_tmps_floor;
3593 CX_DEBUG(cx, "PUSH");
3594 return cx;
3601 Perl_cx_popblock(pTHX_ PERL_CONTEXT *cx)
3605 CX_DEBUG(cx, "POP");
3607 PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp;
3608 PL_scopestack_ix = cx->blk_oldscopesp;
3609 PL_curpm = cx->blk_oldpm;
3614 assert( (CxTYPE(cx) == CXt_SUB && CxMULTICALL(cx))
3615 || PL_savestack_ix == cx->blk_oldsaveix);
3616 PL_curcop = cx->blk_oldcop;
3617 PL_tmps_floor = cx->blk_old_tmpsfloor;
3626 Perl_cx_topblock(pTHX_ PERL_CONTEXT *cx)
3630 CX_DEBUG(cx, "TOP");
3632 PL_markstack_ptr = PL_markstack + cx->blk_oldmarksp;
3633 PL_scopestack_ix = cx->blk_oldscopesp;
3634 PL_curpm = cx->blk_oldpm;
3635 Perl_rpp_popfree_to(aTHX_ PL_stack_base + cx->blk_oldsp);
3640 Perl_cx_pushsub(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, bool hasargs)
3647 cx->blk_sub.old_cxsubix = PL_curstackinfo->si_cxsubix;
3648 PL_curstackinfo->si_cxsubix = (I32)(cx - PL_curstackinfo->si_cxstack);
3649 cx->blk_sub.cv = cv;
3650 cx->blk_sub.olddepth = CvDEPTH(cv);
3651 cx->blk_sub.prevcomppad = PL_comppad;
3652 cx->cx_type |= (hasargs) ? CXp_HASARGS : 0;
3653 cx->blk_sub.retop = retop;
3655 cx->blk_u16 = PL_op->op_private & (phlags|OPpDEREF);
3662 Perl_cx_popsub_common(pTHX_ PERL_CONTEXT *cx)
3667 assert(CxTYPE(cx) == CXt_SUB);
3669 PL_comppad = cx->blk_sub.prevcomppad;
3671 cv = cx->blk_sub.cv;
3672 CvDEPTH(cv) = cx->blk_sub.olddepth;
3673 cx->blk_sub.cv = NULL;
3675 PL_curstackinfo->si_cxsubix = cx->blk_sub.old_cxsubix;
3682 Perl_cx_popsub_args(pTHX_ PERL_CONTEXT *cx)
3687 assert(CxTYPE(cx) == CXt_SUB);
3689 PadlistARRAY(CvPADLIST(cx->blk_sub.cv))[
3690 CvDEPTH(cx->blk_sub.cv)])) == PL_curpad);
3692 CX_POP_SAVEARRAY(cx);
3707 Perl_cx_popsub(pTHX_ PERL_CONTEXT *cx)
3710 assert(CxTYPE(cx) == CXt_SUB);
3712 PERL_DTRACE_PROBE_RETURN(cx->blk_sub.cv);
3714 if (CxHASARGS(cx))
3715 cx_popsub_args(cx);
3716 cx_popsub_common(cx);
3721 Perl_cx_pushformat(pTHX_ PERL_CONTEXT *cx, CV *cv, OP *retop, GV *gv)
3725 cx->blk_format.old_cxsubix = PL_curstackinfo->si_cxsubix;
3726 PL_curstackinfo->si_cxsubix= (I32)(cx - PL_curstackinfo->si_cxstack);
3727 cx->blk_format.cv = cv;
3728 cx->blk_format.retop = retop;
3729 cx->blk_format.gv = gv;
3730 cx->blk_format.dfoutgv = PL_defoutgv;
3731 cx->blk_format.prevcomppad = PL_comppad;
3732 cx->blk_u16 = 0;
3736 SvREFCNT_inc_void(cx->blk_format.dfoutgv);
3741 Perl_cx_popformat(pTHX_ PERL_CONTEXT *cx)
3747 assert(CxTYPE(cx) == CXt_FORMAT);
3749 dfout = cx->blk_format.dfoutgv;
3751 cx->blk_format.dfoutgv = NULL;
3754 PL_comppad = cx->blk_format.prevcomppad;
3756 cv = cx->blk_format.cv;
3757 cx->blk_format.cv = NULL;
3760 PL_curstackinfo->si_cxsubix = cx->blk_format.old_cxsubix;
3765 Perl_push_evalortry_common(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv)
3767 cx->blk_eval.retop = retop;
3768 cx->blk_eval.old_namesv = namesv;
3769 cx->blk_eval.old_eval_root = PL_eval_root;
3770 cx->blk_eval.cur_text = PL_parser ? PL_parser->linestr : NULL;
3771 cx->blk_eval.cv = NULL; /* later set by doeval_compile() */
3772 cx->blk_eval.cur_top_env = PL_top_env;
3776 cx->blk_u16 = (PL_in_eval & 0x3F) | ((U16)PL_op->op_type << 7);
3780 Perl_cx_pusheval(pTHX_ PERL_CONTEXT *cx, OP *retop, SV *namesv)
3784 Perl_push_evalortry_common(aTHX_ cx, retop, namesv);
3786 cx->blk_eval.old_cxsubix = PL_curstackinfo->si_cxsubix;
3787 PL_curstackinfo->si_cxsubix = (I32)(cx - PL_curstackinfo->si_cxstack);
3791 Perl_cx_pushtry(pTHX_ PERL_CONTEXT *cx, OP *retop)
3795 Perl_push_evalortry_common(aTHX_ cx, retop, NULL);
3799 cx->blk_eval.old_cxsubix = PL_curstackinfo->si_cxsubix;
3804 Perl_cx_popeval(pTHX_ PERL_CONTEXT *cx)
3809 assert(CxTYPE(cx) == CXt_EVAL);
3811 PL_in_eval = CxOLD_IN_EVAL(cx);
3813 PL_eval_root = cx->blk_eval.old_eval_root;
3814 sv = cx->blk_eval.cur_text;
3815 if (sv && CxEVAL_TXT_REFCNTED(cx)) {
3816 cx->blk_eval.cur_text = NULL;
3820 sv = cx->blk_eval.old_namesv;
3822 cx->blk_eval.old_namesv = NULL;
3825 PL_curstackinfo->si_cxsubix = cx->blk_eval.old_cxsubix;
3837 Perl_cx_pushloop_plain(pTHX_ PERL_CONTEXT *cx)
3840 cx->blk_loop.my_op = cLOOP;
3849 Perl_cx_pushloop_for(pTHX_ PERL_CONTEXT *cx, void *itervarp, SV* itersave)
3854 cx->blk_loop.my_op = cLOOP;
3856 cx->blk_loop.itervar_u.svp = (SV**)itervarp;
3857 cx->blk_loop.itersave = itersave;
3859 cx->blk_loop.oldcomppad = PL_comppad;
3867 Perl_cx_poploop(pTHX_ PERL_CONTEXT *cx)
3871 assert(CxTYPE_is_LOOP(cx));
3872 if ( CxTYPE(cx) == CXt_LOOP_ARY
3873 || CxTYPE(cx) == CXt_LOOP_LAZYSV)
3877 SV *sv = cx->blk_loop.state_u.lazysv.cur;
3878 cx->blk_loop.state_u.lazysv.cur = NULL;
3880 if (CxTYPE(cx) == CXt_LOOP_LAZYSV) {
3881 sv = cx->blk_loop.state_u.lazysv.end;
3882 cx->blk_loop.state_u.lazysv.end = NULL;
3886 if (cx->cx_type & (CXp_FOR_PAD|CXp_FOR_GV)) {
3888 SV **svp = (cx)->blk_loop.itervar_u.svp;
3889 if ((cx->cx_type & CXp_FOR_GV))
3892 *svp = cx->blk_loop.itersave;
3893 cx->blk_loop.itersave = NULL;
3896 if (cx->cx_type & (CXp_FOR_GV|CXp_FOR_LVREF))
3897 SvREFCNT_dec(cx->blk_loop.itervar_u.svp);
3902 Perl_cx_pushwhen(pTHX_ PERL_CONTEXT *cx)
3906 cx->blk_givwhen.leave_op = cLOGOP->op_other;
3911 Perl_cx_popwhen(pTHX_ PERL_CONTEXT *cx)
3914 assert(CxTYPE(cx) == CXt_WHEN);
3916 PERL_UNUSED_ARG(cx);
3923 Perl_cx_pushgiven(pTHX_ PERL_CONTEXT *cx, SV *orig_defsv)
3927 cx->blk_givwhen.leave_op = cLOGOP->op_other;
3928 cx->blk_givwhen.defsv_save = orig_defsv;
3933 Perl_cx_popgiven(pTHX_ PERL_CONTEXT *cx)
3938 assert(CxTYPE(cx) == CXt_GIVEN);
3941 GvSV(PL_defgv) = cx->blk_givwhen.defsv_save;
3942 cx->blk_givwhen.defsv_save = NULL;