This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regcomp.c: Avoid reparsing a node
authorKarl Williamson <khw@cpan.org>
Mon, 30 Sep 2019 02:41:10 +0000 (20:41 -0600)
committerKarl Williamson <khw@cpan.org>
Wed, 30 Oct 2019 03:21:36 +0000 (21:21 -0600)
commitcc1ed6368d665290794d7c24d1dbeb42466e256a
tree16802b9b13ba930ec0bf34092527468f13503237
parentcbc4b0d0871c9aefae386fbcd373ecc483fca415
regcomp.c: Avoid reparsing a node

When it's determined that the final character of a node really should
be in the next node to avoid splitting a multi-character fold, the node
is refilled from scratch, setting an upper limit of how far to go just
before that character.

This commit changes to avoid that reparsing and refilling if just the
final character has to be omitted.  If the node has to be backed up two
or more characters, the reparsing is still done.  The technique in this
commit could be extended to avoid those, but doing it generally is
complicated, and doing it the way this commit does gets more and more
cumbersome, and the odds rapidly get smaller of needing to do more than
what I've done here.
regcomp.c