X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=Magic.xs;h=fab2340743ca8f1f1d06d8ada018c90bf59ada41;hb=aa28d3a561bda4e078b6af411526956ad84b2c38;hp=c19b2f3cc04fe549a207266dbd417d506355c9b9;hpb=9dce2bfe18bcd7d9914310c81b8832d40fb04fbb;p=perl%2Fmodules%2FVariable-Magic.git diff --git a/Magic.xs b/Magic.xs index c19b2f3..fab2340 100644 --- a/Magic.xs +++ b/Magic.xs @@ -79,13 +79,25 @@ STATIC SV *vmg_clone(pTHX_ SV *sv, tTHX owner) { #define vmg_clone(P, O) vmg_clone(aTHX_ (P), (O)) + SV *dupsv; + +#if VMG_HAS_PERL(5, 13, 2) + CLONE_PARAMS *param = Perl_clone_params_new(owner, aTHX); + + dupsv = sv_dup(sv, param); + + Perl_clone_params_del(param); +#else CLONE_PARAMS param; param.stashes = NULL; /* don't need it unless sv is a PVHV */ param.flags = 0; param.proto_perl = owner; - return SvREFCNT_inc(sv_dup(sv, ¶m)); + dupsv = sv_dup(sv, ¶m); +#endif + + return SvREFCNT_inc(dupsv); } #endif /* VMG_THREADSAFE */