X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=indirect.xs;h=896ae7f591338b40e75a0d06e33940aea9af135c;hb=13391a9b36924ccf07e9eeec1bf96943488b3207;hp=b9314ae60a2e92298ff50c63a2c8029373f93a5c;hpb=cfbd22399e253cbac1aad5436d2b191082befe14;p=perl%2Fmodules%2Findirect.git diff --git a/indirect.xs b/indirect.xs index b9314ae..896ae7f 100644 --- a/indirect.xs +++ b/indirect.xs @@ -256,7 +256,7 @@ STATIC U32 indirect_hash = 0; STATIC SV *indirect_hint(pTHX) { #define indirect_hint() indirect_hint(aTHX) SV *id; -#if I_HAS_PERL(5, 10, 0) +#if I_HAS_PERL(5, 9, 5) id = Perl_refcounted_he_fetch(aTHX_ PL_curcop->cop_hints_hash, NULL, __PACKAGE__, __PACKAGE_LEN__, @@ -516,24 +516,24 @@ STATIC OP *indirect_ck_entersub(pTHX_ OP *o) { if (mpos < opos) { SV *code = indirect_detag(hint); - if (hint) { + if (code) { SV *file; line_t line; dSP; + ENTER; + SAVETMPS; + onamesv = sv_mortalcopy(onamesv); mnamesv = sv_mortalcopy(mnamesv); #ifdef USE_ITHREADS - file = newSVpv(CopFILE(&PL_compiling), 0); + file = sv_2mortal(newSVpv(CopFILE(&PL_compiling), 0)); #else file = sv_mortalcopy(CopFILESV(&PL_compiling)); #endif line = CopLINE(&PL_compiling); - ENTER; - SAVETMPS; - PUSHMARK(SP); EXTEND(SP, 4); PUSHs(onamesv);