X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Upper.xs;h=aee877f0bce158a8f208a1bfa8c9508a91bd502f;hb=361c0283804eb19b323c57003e40ff18ac84c089;hp=dfc4169acc8195025f9dce5e650dbef996ba9eb5;hpb=54fa1cc51b63c3039be452e2915930e3becbc0a4;p=perl%2Fmodules%2FScope-Upper.git diff --git a/Upper.xs b/Upper.xs index dfc4169..aee877f 100644 --- a/Upper.xs +++ b/Upper.xs @@ -1185,15 +1185,19 @@ STATIC I32 su_uplevel(pTHX_ CV *cv, I32 cxix, I32 args) { SPAGAIN; sud = su_uplevel_storage_new(); - si = sud->si; sud->cxix = cxix; sud->died = 1; SAVEDESTRUCTOR_X(su_uplevel_restore, sud); - si->si_type = cur->si_type; - si->si_next = NULL; - si->si_prev = cur->si_prev; + si = sud->si; + + si->si_type = cur->si_type; + si->si_next = NULL; + si->si_prev = cur->si_prev; +#ifdef DEBUGGING + si->si_markoff = cx->blk_oldmarksp; +#endif /* Allocate enough space for all the elements of the original stack up to the * target context, plus the forthcoming arguments. */ @@ -1210,10 +1214,6 @@ STATIC I32 su_uplevel(pTHX_ CV *cv, I32 cxix, I32 args) { PL_stack_max = PL_stack_base + AvMAX(si->si_stack); SPAGAIN; -#ifdef DEBUGGING - si->si_markoff = cx->blk_oldmarksp; -#endif - /* Copy the context stack up to the context just below the target. */ si->si_cxix = (cxix < 0) ? -1 : (cxix - 1); if (si->si_cxmax < cxix) {