aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorK.Kosako <kosako@sofnec.co.jp>2018-10-09 14:33:19 +0900
committerK.Kosako <kosako@sofnec.co.jp>2018-10-09 14:33:19 +0900
commit860f6e42ea4e80da6afb405588d635bf281eafa5 (patch)
treed70da2f4edc47501dbab2dd74c2869e6a9dd99fa
parent114a10ec8532d75aeef0c9b887ed28d66267599d (diff)
downloadoniguruma-860f6e42ea4e80da6afb405588d635bf281eafa5.zip
oniguruma-860f6e42ea4e80da6afb405588d635bf281eafa5.tar.gz
oniguruma-860f6e42ea4e80da6afb405588d635bf281eafa5.tar.bz2
don't execute CASE_OP(FAIL) for failed case (label-fail)
-rw-r--r--src/regexec.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/regexec.c b/src/regexec.c
index 0d06603..757f6a2 100644
--- a/src/regexec.c
+++ b/src/regexec.c
@@ -3944,10 +3944,17 @@ match_at(regex_t* reg, const UChar* str, const UChar* end,
goto finish;
NEXT_OP;
+#ifdef ONIG_DEBUG_STATISTICS
fail:
SOP_OUT;
- /* fall */
+ goto fail2;
+#endif
CASE_OP(FAIL)
+#ifdef ONIG_DEBUG_STATISTICS
+ fail2:
+#else
+ fail:
+#endif
STACK_POP;
p = stk->u.state.pcode;
s = stk->u.state.pstr;