Alt-Devel-CallParser-ButWorking
view release on metacpan or search on metacpan
lib/Devel/CallParser.xs view on Meta::CPAN
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
* this bug too.
*
* The other padrange bug was fixed in Perl 5.19.5 (commit aa033da),
* so the workaround is no longer needed after that, but it remains
* harmless until v5.21.4 (commit c9859fb) where it starts breaking
( run in 0.330 second using v1.01-cache-2.11-cpan-496ff517765 )