diff options
Diffstat (limited to 'ext/XS-APItest')
-rw-r--r-- | ext/XS-APItest/APItest.xs | 10 | ||||
-rw-r--r-- | ext/XS-APItest/t/call.t | 2 |
2 files changed, 10 insertions, 2 deletions
diff --git a/ext/XS-APItest/APItest.xs b/ext/XS-APItest/APItest.xs index 5ceb7fe939..891b7e71d4 100644 --- a/ext/XS-APItest/APItest.xs +++ b/ext/XS-APItest/APItest.xs @@ -2339,9 +2339,17 @@ CODE: only current internal behavior, these tests can be changed in the future if necessery */ PUSHMARK(SP); - retcnt = call_sv(&PL_sv_yes, 0); /* does nothing */ + retcnt = call_sv(&PL_sv_yes, G_EVAL); SPAGAIN; SP -= retcnt; + errsv = ERRSV; + errstr = SvPV(errsv, errlen); + if(memBEGINs(errstr, errlen, "Undefined subroutine &main::1 called at")) { + PUSHMARK(SP); + retcnt = call_sv((SV*)i_sub, 0); /* call again to increase counter */ + SPAGAIN; + SP -= retcnt; + } PUSHMARK(SP); retcnt = call_sv(&PL_sv_no, G_EVAL); SPAGAIN; diff --git a/ext/XS-APItest/t/call.t b/ext/XS-APItest/t/call.t index 355e49886e..8192b9bd36 100644 --- a/ext/XS-APItest/t/call.t +++ b/ext/XS-APItest/t/call.t @@ -33,7 +33,7 @@ sub i { $call_sv_count++; } call_sv_C(); -is($call_sv_count, 6, "call_sv_C passes"); +is($call_sv_count, 7, "call_sv_C passes"); sub d { die "its_dead_jim\n"; |