X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Upper.xs;h=c23b6c05ed0f0dc08dab476d966819a7b593552e;hb=a69e2ff8b8bb97531b54219457343025cbde5c96;hp=5b0685d97502efdab9caa4a15d4c958615757ccf;hpb=c827e4d5a2951be50c2bffc478035891b8ceb8c5;p=perl%2Fmodules%2FScope-Upper.git diff --git a/Upper.xs b/Upper.xs index 5b0685d..c23b6c0 100644 --- a/Upper.xs +++ b/Upper.xs @@ -1220,12 +1220,12 @@ static void su_yield(pTHX_ void *ud_) { #if SU_HAS_PERL(5, 10, 0) if (cxix > 0) { PERL_CONTEXT *prev = cx - 1; - U8 type = CxTYPE(prev); - if ((type == CXt_GIVEN || type == CXt_WHEN) + U8 prev_type = CxTYPE(prev); + if ((prev_type == CXt_GIVEN || prev_type == CXt_WHEN) && (prev->blk_oldcop == cx->blk_oldcop)) { cxix--; cx = prev; - if (type == CXt_GIVEN) + if (prev_type == CXt_GIVEN) goto cxt_given; else goto cxt_when; @@ -2221,7 +2221,7 @@ static I32 su_context_gimme(pTHX_ I32 cxix) { /* --- Global setup/teardown ----------------------------------------------- */ -static U32 su_initialized = 0; +static VOL U32 su_initialized = 0; static void su_global_teardown(pTHX_ void *root) { if (!su_initialized)