From: Andrew Main Date: Wed, 30 Jan 2013 17:52:09 +0000 (-0200) Subject: Make indirect play nice with Devel::CallParser X-Git-Tag: rt82562^0 X-Git-Url: http://git.vpit.fr/?p=perl%2Fmodules%2Findirect.git;a=commitdiff_plain;h=47795ecd50880244edb1da0a9253bf228d9e9293;ds=sidebyside Make indirect play nice with Devel::CallParser --- diff --git a/indirect.xs b/indirect.xs index 4091cf3..4f7ac3a 100644 --- a/indirect.xs +++ b/indirect.xs @@ -394,6 +394,11 @@ STATIC SV *indirect_hint(pTHX) { if (IN_PERL_RUNTIME) return NULL; +#if I_HAS_PERL(5, 10, 0) || defined(PL_parser) + if (!PL_parser) + return NULL; +#endif + #ifdef cop_hints_fetch_pvn hint = cop_hints_fetch_pvn(PL_curcop, __PACKAGE__, __PACKAGE_LEN__, indirect_hash, 0); diff --git a/t/50-external.t b/t/50-external.t index 5d3d375..52ff1b8 100644 --- a/t/50-external.t +++ b/t/50-external.t @@ -3,7 +3,10 @@ use strict; use warnings; -use Test::More tests => 2; +use Test::More tests => 3; + +use lib 't/lib'; +use VPIT::TestHelpers; BEGIN { delete $ENV{PERL_INDIRECT_PM_DISABLE} } @@ -29,3 +32,10 @@ SKIP: my $status = run_perl 'no indirect hook => sub { exit 2 }; new X'; is $status, 2 << 8, 'no semicolon at the end of -e'; } + +SKIP: +{ + load_or_skip('Devel::CallParser', undef, undef, 1); + my $status = run_perl "use Devel::CallParser (); no indirect; sub ok { } ok 1"; + is $status, 0, 'indirect is not getting upset by Devel::CallParser'; +}