X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Magic.xs;h=4574c23e83cdae060dd6f2b5b78503e15d892dc9;hb=02f8f67606edc22d31e01944a649f5e0824b33ba;hp=2883f000dc47dc5cebbbee796668d8a32887dd54;hpb=4323766d111bf2a00bcd68fc8ce18fa34ef00e46;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/Magic.xs b/Magic.xs index 2883f00..4574c23 100644 --- a/Magic.xs +++ b/Magic.xs @@ -38,13 +38,15 @@ # define dNOOP #endif -#if defined(MULTIPLICITY) || defined(PERL_IMPLICIT_CONTEXT) -# define VMG_MULTIPLICITY 1 -# ifndef tTHX -# define tTHX PerlInterpreter* +#ifndef VMG_MULTIPLICITY +# if defined(MULTIPLICITY) || defined(PERL_IMPLICIT_CONTEXT) +# define VMG_MULTIPLICITY 1 +# else +# define VMG_MULTIPLICITY 0 # endif -#else -# define VMG_MULTIPLICITY 0 +#endif +#if VMG_MULTIPLICITY && !defined(tTHX) +# define tTHX PerlInterpreter* #endif #if VMG_MULTIPLICITY && defined(dMY_CXT) && defined(MY_CXT) && defined(START_MY_CXT) && defined(MY_CXT_INIT) && (defined(MY_CXT_CLONE) || defined(dMY_CXT_SV)) @@ -70,7 +72,7 @@ # define MY_CXT_CLONE NOOP #endif -#if VMG_MULTIPLICITY +#if VMG_THREADSAFE STATIC SV *vmg_clone(pTHX_ SV *sv, tTHX owner) { #define vmg_clone(P, O) vmg_clone(aTHX_ (P), (O)) @@ -81,7 +83,7 @@ STATIC SV *vmg_clone(pTHX_ SV *sv, tTHX owner) { return sv_dup(sv, ¶m); } -#endif /* VMG_MULTIPLICITY */ +#endif /* VMG_THREADSAFE */ /* --- Compatibility ------------------------------------------------------- */ @@ -316,7 +318,7 @@ STATIC UV vmg_cast(pTHX_ SV *sv, SV *wiz, AV *args) { if (w->cb_copy) mg->mg_flags |= MGf_COPY; #endif /* MGf_COPY */ -#if MGf_DUP +#if 0 /* MGf_DUP */ if (w->cb_dup) mg->mg_flags |= MGf_DUP; #endif /* MGf_DUP */ @@ -675,7 +677,7 @@ STATIC int vmg_wizard_free(pTHX_ SV *wiz, MAGIC *mg) { #if MGf_COPY if (w->cb_copy != NULL) { SvREFCNT_dec(SvRV(w->cb_copy)); } #endif /* MGf_COPY */ -#if MGf_DUP +#if 0 /* MGf_DUP */ if (w->cb_dup != NULL) { SvREFCNT_dec(SvRV(w->cb_dup)); } #endif /* MGf_DUP */ #if MGf_LOCAL @@ -798,7 +800,7 @@ STATIC SV *vmg_wizard_wiz(pTHX_ SV *wiz) { w->cb_ ## N = NULL; \ } -#if VMG_MULTIPLICITY +#if VMG_THREADSAFE #define VMG_CLONE_CB(N) \ z->cb_ ## N = (w->cb_ ## N) ? newRV_noinc(vmg_clone(SvRV(w->cb_ ## N), \ @@ -843,7 +845,7 @@ STATIC MGWIZ *vmg_wizard_clone(pTHX_ const MGWIZ *w) { return z; } -#endif /* VMG_MULTIPLICITY */ +#endif /* VMG_THREADSAFE */ /* --- XS ------------------------------------------------------------------ */