Alt-Devel-CallParser-ButWorking
view release on metacpan or search on metacpan
lib/Devel/CallParser.xs view on Meta::CPAN
char *keyword_ptr, STRLEN keyword_len, OP **op_ptr)
{
OP *nmop, *cvop, *argsop;
CV *cv;
GV *namegv;
Perl_call_parser psfun;
SV *psobj;
U32 parser_flags;
/*
* Creation of the rv2cv op below (or more precisely its gv op
* child created during checking) uses a pad slot under threads.
* Normally this is fine, but early versions of the padrange
* mechanism make assumptions about pad slots being contiguous
* that this breaks. On the affected perl versions, therefore,
* we watch for the pad slot being consumed, and restore the
* pad's fill pointer if we throw the op away (upon declining
* to handle the keyword).
*
* The core bug was supposedly fixed in Perl 5.19.4, but actually
* that version exhibits a different bug also apparently related
* to padrange. Restoring the pad's fill pointer works around
( run in 0.516 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )