much better swap logic to support reentrancy and fix assert failure
authorGeorge Greer <greerga@m-l.org>
Sun, 12 Jul 2009 18:53:29 +0000 (14:53 -0400)
committerYves Orton <demerphq@gemini.(none)>
Sun, 26 Jul 2009 21:28:59 +0000 (23:28 +0200)
commite9105d30edfbaa7f444bc7984c9bafc8e991ad12
tree02f4a68781026819995c672ba8325caee5661d7f
parentbd54d59dd6a665482e3984318596e9a54427f810
much better swap logic to support reentrancy and fix assert failure

Commit c74340f9 added backreferences as well as the idea of a ->swap
regex pointer to keep track of the match offsets in case of backtracking.
The problem is that when Perl re-enters the regex engine to handle
utf8::SWASHNEW, the ->swap is not saved/restored/cleared so any capture
from the utf8 (Perl) code could inadvertently modify the regex match
data that caused the utf8 swash to get built.

This change should close out RT #60508
embed.fnc
embed.h
ext/Devel-PPPort/parts/embed.fnc
pod/perlreapi.pod
pod/perlreguts.pod
proto.h
regcomp.c
regexec.c
regexp.h
t/op/pat.t