From: K.Kosako Date: Tue, 27 Aug 2019 04:58:12 +0000 (+0900) Subject: refactoring X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=496248043ae9df1c9b45e4ce88617698a35d2bad;p=onig refactoring --- diff --git a/src/regexec.c b/src/regexec.c index 57c64df..cc56cbe 100644 --- a/src/regexec.c +++ b/src/regexec.c @@ -43,6 +43,11 @@ (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;