X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Upper.xs;h=61f8560e5bf4b957971e31d2d65260f41984ef66;hb=34257ad32ccc3d743ea1c90fa6cc051c7821e82f;hp=89083850cd9209579c880f9bade1d22e89bfbb74;hpb=f43a242b7a060b39234a12159de86b2bf56ff37a;p=perl%2Fmodules%2FScope-Upper.git diff --git a/Upper.xs b/Upper.xs index 8908385..61f8560 100644 --- a/Upper.xs +++ b/Upper.xs @@ -44,6 +44,10 @@ # define SvPV_nolen_const(S) SvPV_nolen(S) #endif +#ifndef SvREFCNT_inc_simple_void +# define SvREFCNT_inc_simple_void(sv) SvREFCNT_inc(sv) +#endif + #ifndef HvNAME_get # define HvNAME_get(H) HvNAME(H) #endif @@ -176,7 +180,7 @@ STATIC void su_save_adelete(pTHX_ AV *av, I32 idx) { Newx(ud, 1, su_ud_adelete); ud->av = av; ud->idx = idx; - SvREFCNT_inc(av); + SvREFCNT_inc_simple_void(av); SAVEDESTRUCTOR_X(su_adelete, ud); } @@ -352,7 +356,7 @@ STATIC void su_ud_localize_init(pTHX_ su_ud_localize *ud, SV *sv, SV *val, SV *e UV deref = 0; svtype t = SVt_NULL; - SvREFCNT_inc(sv); + SvREFCNT_inc_simple_void(sv); if (SvTYPE(sv) >= SVt_PVGV) { if (!val || !SvROK(val)) { /* local *x; or local *x = $val; */ @@ -397,6 +401,7 @@ STATIC void su_ud_localize_init(pTHX_ su_ud_localize *ud, SV *sv, SV *val, SV *e case SVt_PVCV: case SVt_PVGV: deref = 0; + default: break; } /* When deref is set, val isn't NULL */