summaryrefslogtreecommitdiff
path: root/regcomp.c
diff options
context:
space:
mode:
authorKarl Williamson <khw@cpan.org>2020-05-02 07:06:57 -0600
committerKarl Williamson <khw@cpan.org>2021-08-07 14:50:36 -0600
commitad06b7d50279bc74b53b6034e061808c7408017a (patch)
tree074751e25ac1858462fd35edff5c8976b1049952 /regcomp.c
parente040f2ad444d8427fef376d99c0fb47a06a78e05 (diff)
downloadperl-ad06b7d50279bc74b53b6034e061808c7408017a.tar.gz
regcomp.c: Consolidate duplicate code
Diffstat (limited to 'regcomp.c')
-rw-r--r--regcomp.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/regcomp.c b/regcomp.c
index 9b895cbba2..a94c4de77f 100644
--- a/regcomp.c
+++ b/regcomp.c
@@ -19351,15 +19351,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
@@ -19371,13 +19367,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;
}
@@ -19452,15 +19445,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 */
@@ -20177,6 +20166,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