Please sign in to comment.
Fix for RT #74593: restore _parserepeat calling convection.
Parse::RecDescent 1.966_002 introduced a bug fix that changed the calling convention for the internal function _parserepeat. This function was also used by Precompiled parsers distributed as parts of other modules on CPAN, like Mail::IMAPClient and Module::ExtractUse. This change restores the old old _parserepeat calling convention, placing the new $_itempos argument at the end of the list. An unfortunate side effect of this change is that Precompiled parsers that used versions 1.966_002 - 1.967_007 will break with this change. Additionally, some Precompiled parsers available in CPAN modules (like Module::ExtractUse) pre-dated Parse::RecDescent's setting of the _precompiled member in the returned $parser. Recent changes to DESTROY to fix some memory leaks for dynamically generated parsers end up removing those precompiled parser's functions. Now Parse::RecDescent sets _not_precompiled on runtime-generated parsers. New precompiled parsers should delete this key prior to writing out the parser. LocalWords: parserepeat
- Loading branch information...
Showing with 36 additions and 14 deletions.