develooper Front page | perl.perl5.porters | Postings from September 2010

[PATCH 1/2] Localize PL_reg_state during re_evals

Thread Next
From:
Florian Ragwitz
Date:
September 22, 2010 05:59
Subject:
[PATCH 1/2] Localize PL_reg_state during re_evals
Message ID:
1285160277-15969-1-git-send-email-rafl@debian.org
---
 regexec.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff --git a/regexec.c b/regexec.c
index 881f8c2..867965a 100644
--- a/regexec.c
+++ b/regexec.c
@@ -3975,7 +3975,10 @@ S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog)
 		COP * const ocurcop = PL_curcop;
 		PAD *old_comppad;
 		char *saved_regeol = PL_regeol;
-	    
+		struct re_save_state saved_state;
+
+		Copy(&PL_reg_state, &saved_state, 1, struct re_save_state);
+
 		n = ARG(scan);
 		PL_op = (OP_4tree*)rexi->data->data[n];
 		DEBUG_STATE_r( PerlIO_printf(Perl_debug_log, 
@@ -3997,6 +4000,8 @@ S_regmatch(pTHX_ regmatch_info *reginfo, regnode *prog)
 		    PUTBACK;
 		}
 
+		Copy(&saved_state, &PL_reg_state, 1, struct re_save_state);
+
 		PL_op = oop;
 		PAD_RESTORE_LOCAL(old_comppad);
 		PL_curcop = ocurcop;
-- 
1.7.1


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About