]> git.vpit.fr Git - perl/modules/Scope-Upper.git/blobdiff - Upper.xs
Fix building with Solaris CC
[perl/modules/Scope-Upper.git] / Upper.xs
index 17c4407eca2b39af44177bd1433e86133eee031c..afb1275492c19352f46c44c3ee64c1d735d1fcc9 100644 (file)
--- 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);
 
@@ -732,7 +729,9 @@ CLONE(...)
 PROTOTYPE: DISABLE
 CODE:
  PERL_UNUSED_VAR(items);
- MY_CXT_CLONE;
+ {
+  MY_CXT_CLONE;
+ }
 
 #endif /* SU_THREADSAFE */