]> granicus.if.org Git - onig/commitdiff
refactoring
authorK.Kosako <kosako@sofnec.co.jp>
Tue, 27 Aug 2019 04:58:12 +0000 (13:58 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Thu, 29 Aug 2019 00:19:59 +0000 (09:19 +0900)
src/regexec.c

index 57c64df983f4a82a75741220591ed2ed61751628..cc56cbeb31b1b6732ab4e82117c1a11f87a19b2f 100644 (file)
   (MEM_STATUS_AT((reg)->bt_mem_start, (i)) != 0 ? \
    STACK_AT(mem_start_stk[i])->u.mem.pstr : (UChar* )((void* )(mem_start_stk[i])))
 
+#define STACK_MEM_END(reg, i) \
+  (MEM_STATUS_AT((reg)->bt_mem_end, (i)) != 0 ? \
+   STACK_AT(mem_end_stk[i])->u.mem.pstr : (UChar* )((void* )(mem_end_stk[i])))
+
+
 #ifdef USE_CALLOUT
 typedef struct {
   int last_match_at_call_counter;
@@ -2693,10 +2698,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end,
             for (i = 1; i <= num_mem; i++) {
               if (mem_end_stk[i] != INVALID_STACK_INDEX) {
                 rmt[i].rm_so = (regoff_t )(STACK_MEM_START(reg, i) - str);
-                rmt[i].rm_eo = (regoff_t )((MEM_STATUS_AT(reg->bt_mem_end, i)
-                                            ? STACK_AT(mem_end_stk[i])->u.mem.pstr
-                                            : (UChar* )((void* )mem_end_stk[i]))
-                                           - str);
+                rmt[i].rm_eo = (regoff_t )(STACK_MEM_END(reg, i)   - str);
               }
               else {
                 rmt[i].rm_so = rmt[i].rm_eo = ONIG_REGION_NOTPOS;
@@ -2710,9 +2712,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end,
             for (i = 1; i <= num_mem; i++) {
               if (mem_end_stk[i] != INVALID_STACK_INDEX) {
                 region->beg[i] = (int )(STACK_MEM_START(reg, i) - str);
-                region->end[i] = (int )((MEM_STATUS_AT(reg->bt_mem_end, i)
-                                         ? STACK_AT(mem_end_stk[i])->u.mem.pstr
-                                         : (UChar* )((void* )mem_end_stk[i])) - str);
+                region->end[i] = (int )(STACK_MEM_END(reg, i)   - str);
               }
               else {
                 region->beg[i] = region->end[i] = ONIG_REGION_NOTPOS;
@@ -3455,9 +3455,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end,
         if (mem_start_stk[mem] == INVALID_STACK_INDEX) goto fail;
 
         pstart = STACK_MEM_START(reg, mem);
-        pend = (MEM_STATUS_AT(reg->bt_mem_end, mem)
-                ? STACK_AT(mem_end_stk[mem])->u.mem.pstr
-                : (UChar* )((void* )mem_end_stk[mem]));
+        pend   = STACK_MEM_END(reg, mem);
         n = (int )(pend - pstart);
         if (n != 0) {
           DATA_ENSURE(n);
@@ -3480,9 +3478,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end,
         if (mem_start_stk[mem] == INVALID_STACK_INDEX) goto fail;
 
         pstart = STACK_MEM_START(reg, mem);
-        pend = (MEM_STATUS_AT(reg->bt_mem_end, mem)
-                ? STACK_AT(mem_end_stk[mem])->u.mem.pstr
-                : (UChar* )((void* )mem_end_stk[mem]));
+        pend   = STACK_MEM_END(reg, mem);
         n = (int )(pend - pstart);
         if (n != 0) {
           DATA_ENSURE(n);
@@ -3508,9 +3504,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end,
           if (mem_start_stk[mem] == INVALID_STACK_INDEX) continue;
 
           pstart = STACK_MEM_START(reg, mem);
-          pend = (MEM_STATUS_AT(reg->bt_mem_end, mem)
-                  ? STACK_AT(mem_end_stk[mem])->u.mem.pstr
-                  : (UChar* )((void* )mem_end_stk[mem]));
+          pend   = STACK_MEM_END(reg, mem);
           n = (int )(pend - pstart);
           if (n != 0) {
             DATA_ENSURE(n);
@@ -3542,9 +3536,7 @@ match_at(regex_t* reg, const UChar* str, const UChar* end,
           if (mem_start_stk[mem] == INVALID_STACK_INDEX) continue;
 
           pstart = STACK_MEM_START(reg, mem);
-          pend = (MEM_STATUS_AT(reg->bt_mem_end, mem)
-                  ? STACK_AT(mem_end_stk[mem])->u.mem.pstr
-                  : (UChar* )((void* )mem_end_stk[mem]));
+          pend   = STACK_MEM_END(reg, mem);
           n = (int )(pend - pstart);
           if (n != 0) {
             DATA_ENSURE(n);
@@ -5384,9 +5376,7 @@ onig_get_capture_range_in_callout(OnigCalloutArgs* a, int mem_num, int* begin, i
   if (i > 0) {
     if (a->mem_end_stk[i] != INVALID_STACK_INDEX) {
       *begin = (int )(STACK_MEM_START(reg, i) - str);
-      *end = (int )((MEM_STATUS_AT(reg->bt_mem_end, i)
-                     ? STACK_AT(mem_end_stk[i])->u.mem.pstr
-                     : (UChar* )((void* )mem_end_stk[i])) - str);
+      *end   = (int )(STACK_MEM_END(reg, i)   - str);
     }
     else {
       *begin = *end = ONIG_REGION_NOTPOS;