X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Upper.xs;h=682aa879f12664483e6d157a5aaeb5d81d32e3b1;hb=add935e784ba40a5c477b8b8c93fb4a2159b53a1;hp=47dab2b2100ea76d5b2ec5f68e268ee3aaf7df2b;hpb=bbbe07a5dec59669ffef59ce33e3884ecfd1b7f1;p=perl%2Fmodules%2FScope-Upper.git diff --git a/Upper.xs b/Upper.xs index 47dab2b..682aa87 100644 --- a/Upper.xs +++ b/Upper.xs @@ -48,6 +48,10 @@ # define SvREFCNT_inc_simple_void(sv) SvREFCNT_inc(sv) #endif +#ifndef GvCV_set +# define GvCV_set(G, C) (GvCV(G) = (C)) +#endif + #ifndef HvNAME_get # define HvNAME_get(H) HvNAME(H) #endif @@ -167,8 +171,10 @@ START_MY_CXT # define SU_SAVE_GP_SIZE 6 #elif !SU_HAS_PERL(5, 13, 0) || (SU_RELEASE && SU_HAS_PERL_EXACT(5, 13, 0)) # define SU_SAVE_GP_SIZE 3 -#else +#elif !SU_HAS_PERL(5, 13, 8) # define SU_SAVE_GP_SIZE 4 +#else +# define SU_SAVE_GP_SIZE 3 #endif #ifndef SvCANEXISTDELETE @@ -544,7 +550,7 @@ STATIC void su_localize(pTHX_ void *ud_) { break; case SVt_PVCV: SAVESPTR(GvCV(gv)); - GvCV(gv) = NULL; + GvCV_set(gv, NULL); break; default: gv = (GV *) save_scalar(gv);