X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Magic.xs;h=ec49843183def6fa826c8f2edd5e5d5712f11a7c;hb=ca0345bc78a38a61ec2f3886021532a7a205a0b2;hp=3df5970c6508db8bb94e1e11c8f8e1789dd71ab5;hpb=66e0fff9ba0033da3d616a042d98855eda348f97;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/Magic.xs b/Magic.xs index 3df5970..ec49843 100644 --- a/Magic.xs +++ b/Magic.xs @@ -127,6 +127,13 @@ STATIC SV *vmg_clone(pTHX_ SV *sv, tTHX owner) { # define VMG_COMPAT_ARRAY_PUSH_NOLEN 0 #endif +/* Applied to dev-5.11 as 34908 */ +#if VMG_HAS_PERL_MAINT(5, 11, 0, 34908) +# define VMG_COMPAT_ARRAY_UNSHIFT_NOLEN_VOID 1 +#else +# define VMG_COMPAT_ARRAY_UNSHIFT_NOLEN_VOID 0 +#endif + /* Applied to dev-5.9 as 31473 (see #43357), integrated to maint-5.8 as 32542 */ #if VMG_HAS_PERL_MAINT(5, 8, 9, 32542) || VMG_HAS_PERL_MAINT(5, 9, 5, 31473) || VMG_HAS_PERL(5, 10, 0) # define VMG_COMPAT_ARRAY_UNDEF_CLEAR 1 @@ -802,8 +809,8 @@ STATIC SV *vmg_wizard_wiz(pTHX_ SV *wiz) { #if VMG_THREADSAFE #define VMG_CLONE_CB(N) \ - z->cb_ ## N = (w->cb_ ## N) ? newRV_noinc(vmg_clone(SvRV(w->cb_ ## N), \ - w->owner)) \ + z->cb_ ## N = (w->cb_ ## N) ? newRV_inc(vmg_clone(SvRV(w->cb_ ## N), \ + w->owner)) \ : NULL; STATIC MGWIZ *vmg_wizard_clone(pTHX_ const MGWIZ *w) { @@ -868,6 +875,8 @@ BOOT: newCONSTSUB(stash, "VMG_UVAR", newSVuv(VMG_UVAR)); newCONSTSUB(stash, "VMG_COMPAT_ARRAY_PUSH_NOLEN", newSVuv(VMG_COMPAT_ARRAY_PUSH_NOLEN)); + newCONSTSUB(stash, "VMG_COMPAT_ARRAY_UNSHIFT_NOLEN_VOID", + newSVuv(VMG_COMPAT_ARRAY_UNSHIFT_NOLEN_VOID)); newCONSTSUB(stash, "VMG_COMPAT_ARRAY_UNDEF_CLEAR", newSVuv(VMG_COMPAT_ARRAY_UNDEF_CLEAR)); newCONSTSUB(stash, "VMG_COMPAT_SCALAR_LENGTH_NOLEN",