]> granicus.if.org Git - onig/commitdiff
define STK_MASK_POP_HANDLED_TIL
authorK.Kosako <kosako@sofnec.co.jp>
Mon, 5 Feb 2018 07:40:02 +0000 (16:40 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Mon, 5 Feb 2018 07:40:02 +0000 (16:40 +0900)
src/regexec.c

index 6e08ab112654328ed6812a151835f25b86511a91..616fcddf4f56e867b374146768f1aa8c394eac4e 100644 (file)
@@ -848,6 +848,7 @@ onig_region_copy(OnigRegion* to, OnigRegion* from)
 /* stack type check mask */
 #define STK_MASK_POP_USED          STK_ALT_FLAG
 #define STK_MASK_POP_HANDLED       0x0010
+#define STK_MASK_POP_HANDLED_TIL   (STK_MASK_POP_HANDLED | 0x0004)
 #define STK_MASK_TO_VOID_TARGET    0x100e
 #define STK_MASK_MEM_END_OR_MARK   0x8000  /* MEM_END or MEM_END_MARK */
 
@@ -1470,9 +1471,9 @@ stack_double(int is_alloca, char** arg_alloc_base,
   while (1) {\
     stk--;\
     STACK_BASE_CHECK(stk, (aname));\
-    if (stk->type == (til_type)) break;\
-    else if ((stk->type & STK_MASK_POP_HANDLED) != 0) {\
-      if (stk->type == STK_MEM_START) {\
+    if ((stk->type & STK_MASK_POP_HANDLED_TIL) != 0) {\
+      if (stk->type == (til_type)) break;\
+      else if (stk->type == STK_MEM_START) {\
         mem_start_stk[stk->id] = stk->u.mem.start;\
         mem_end_stk[stk->id]   = stk->u.mem.end;\
       }\