X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Upper.xs;h=2ebee08b0c1d9b189d3c47ddf26596230ca83dc9;hb=da4cceb83810de827ceba611a1459c0afd672039;hp=17c4407eca2b39af44177bd1433e86133eee031c;hpb=a6a23970b0bc27b04f47f99cea5bc8dea0a060d9;p=perl%2Fmodules%2FScope-Upper.git diff --git a/Upper.xs b/Upper.xs index 17c4407..2ebee08 100644 --- a/Upper.xs +++ b/Upper.xs @@ -351,11 +351,9 @@ STATIC void su_localize(pTHX_ void *ud_) { if (SvTYPE(sv) >= SVt_PVGV) { gv = (GV *) sv; - if (!val) { /* local *x; */ + if (!val || !SvROK(val)) { /* local *x; or local *x = $val; */ t = SVt_PVGV; - } else if (!SvROK(val)) { /* local *x = $val; */ - goto assign; - } else { /* local *x = \$val; */ + } else { /* local *x = \$val; */ t = SvTYPE(SvRV(val)); deref = 1; } @@ -430,7 +428,6 @@ STATIC void su_localize(pTHX_ void *ud_) { ud, PL_savestack_ix, PL_scopestack[PL_scopestack_ix])); -assign: if (val) SvSetMagicSV((SV *) gv, val);