In perl.git, the branch blead has been updated

<http://perl5.git.perl.org/perl.git/commitdiff/77da2310c76f19f8b52c04ab613265ef345523a1?hp=ecb73272e6394b45dd79d2330a67e279ab136980>

- Log -----------------------------------------------------------------
commit 77da2310c76f19f8b52c04ab613265ef345523a1
Author: Nicholas Clark <n...@ccl4.org>
Date:   Thu Jun 16 11:11:39 2011 +0200

    In pp_match, refactor the call to CALLREGEXEC() to avoid a goto.
    
    The previous slightly contorted logic had an if() block that ended in a 
goto,
    where the target was only 6 lines later, and could not be reached directly.
    It dates back to (at least) 5.000, with no structural changes since then.
-----------------------------------------------------------------------

Summary of changes:
 pp_hot.c |   20 ++++++++------------
 1 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/pp_hot.c b/pp_hot.c
index 6adb5be..526adb8 100644
--- a/pp_hot.c
+++ b/pp_hot.c
@@ -1404,22 +1404,18 @@ PP(pp_match)
             && !SvROK(TARG))   /* Cannot trust since INTUIT cannot guess ^ */
            goto yup;
     }
-    if (CALLREGEXEC(rx, (char*)s, (char *)strend, (char*)truebase,
-                    minmatch, TARG, NUM2PTR(void*, gpos), r_flags))
-    {
-       PL_curpm = pm;
-       if (dynpm->op_pmflags & PMf_ONCE) {
+    if (!CALLREGEXEC(rx, (char*)s, (char *)strend, (char*)truebase,
+                    minmatch, TARG, NUM2PTR(void*, gpos), r_flags))
+       goto ret_no;
+
+    PL_curpm = pm;
+    if (dynpm->op_pmflags & PMf_ONCE) {
 #ifdef USE_ITHREADS
-            SvREADONLY_on(PL_regex_pad[dynpm->op_pmoffset]);
+       SvREADONLY_on(PL_regex_pad[dynpm->op_pmoffset]);
 #else
-           dynpm->op_pmflags |= PMf_USED;
+       dynpm->op_pmflags |= PMf_USED;
 #endif
-        }
-       goto gotcha;
     }
-    else
-       goto ret_no;
-    /*NOTREACHED*/
 
   gotcha:
     if (rxtainted)

--
Perl5 Master Repository

Reply via email to