From 8ddac7fce1f36a8ff18368b2ec16aa358ef500d4 Mon Sep 17 00:00:00 2001 From: Karl Williamson Date: Sat, 2 May 2020 07:06:57 -0600 Subject: [PATCH] regcomp.c: Consolidate duplicate code --- regcomp.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/regcomp.c b/regcomp.c index 8e6c38cb7449..f37e2c0b7ad4 100644 --- a/regcomp.c +++ b/regcomp.c @@ -19336,15 +19336,11 @@ S_optimize_regclass(pTHX_ * any run-time dependencies don't matter */ if (start[0] == 0 && end[0] == UV_MAX) { if (*invert) { - op = OPFAIL; - *ret = reganode(pRExC_state, op, 0); + goto return_OPFAIL; } else { - op = SANY; - *ret = reg_node(pRExC_state, op); - MARK_NAUGHTY(1); + goto return_SANY; } - return op; } /* Similarly, for /l posix classes, if both a class and its complement @@ -19356,13 +19352,10 @@ S_optimize_regclass(pTHX_ && POSIXL_TEST(posixl, namedclass + 1)) /* its complement */ { if (*invert) { - op = OPFAIL; - *ret = reganode(pRExC_state, op, 0); + goto return_OPFAIL; } else { - op = SANY; - *ret = reg_node(pRExC_state, op); - MARK_NAUGHTY(1); + goto return_SANY; } return op; } @@ -19446,15 +19439,11 @@ S_optimize_regclass(pTHX_ * properties). */ if (partial_cp_count == 0) { if (*invert) { - op = SANY; - *ret = reg_node(pRExC_state, op); + goto return_SANY; } else { - op = OPFAIL; - *ret = reganode(pRExC_state, op, 0); + goto return_OPFAIL; } - - return op; } /* If matches everything but \n */ @@ -20170,6 +20159,17 @@ S_optimize_regclass(pTHX_ } return op; + + return_OPFAIL: + op = OPFAIL; + *ret = reganode(pRExC_state, op, 0); + return op; + + return_SANY: + op = SANY; + *ret = reg_node(pRExC_state, op); + MARK_NAUGHTY(1); + return op; } #undef HAS_NONLOCALE_RUNTIME_PROPERTY_DEFINITION