From 2ec7214c34f5d160ff6a0e8acb3f151c5974e83a Mon Sep 17 00:00:00 2001 From: David Mitchell Date: Mon, 15 Jul 2013 21:24:02 +0100 Subject: [PATCH] pp_subst: combine 3 small elsif blocks into 1 and slightly reduce the scope of the temporary i var. --- pp_hot.c | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/pp_hot.c b/pp_hot.c index e59c9fe..27ecb4a 100644 --- a/pp_hot.c +++ b/pp_hot.c @@ -2179,13 +2179,13 @@ PP(pp_subst) if (once) { char *d, *m; - I32 i; if (RX_MATCH_TAINTED(rx)) /* run time pattern taint, eg locale */ rxtainted |= SUBST_TAINT_PAT; m = orig + RX_OFFS(rx)[0].start; d = orig + RX_OFFS(rx)[0].end; s = orig; if (m - s > strend - d) { /* faster to shorten from end */ + I32 i; if (clen) { Copy(c, m, clen, char); m += clen; @@ -2198,21 +2198,15 @@ PP(pp_subst) *m = '\0'; SvCUR_set(TARG, m - s); } - else if ((i = m - s)) { /* faster from front */ + else { /* faster from front */ + I32 i = m - s; d -= clen; - Move(s, d - i, i, char); + if (i > 0) + Move(s, d - i, i, char); sv_chop(TARG, d-i); if (clen) Copy(c, d, clen, char); } - else if (clen) { - d -= clen; - sv_chop(TARG, d); - Copy(c, d, clen, char); - } - else { - sv_chop(TARG, d); - } SPAGAIN; PUSHs(&PL_sv_yes); } -- 1.8.3.1