]> granicus.if.org Git - onig/commitdiff
add string_pool_end member into regex_t
authorK.Kosako <kosako@sofnec.co.jp>
Wed, 27 Mar 2019 06:07:00 +0000 (15:07 +0900)
committerK.Kosako <kosako@sofnec.co.jp>
Wed, 27 Mar 2019 06:07:00 +0000 (15:07 +0900)
src/regcomp.c
src/regint.h

index f2f0f7837dd5ffd95671ff79cfa2119c319f945f..c33be1544524a1f837b59d00564b21101691d537 100644 (file)
@@ -371,7 +371,8 @@ ops_make_string_pool(regex_t* reg)
     }
   }
 
-  reg->string_pool = pool;
+  reg->string_pool     = pool;
+  reg->string_pool_end = pool + size;
   return 0;
 }
 
@@ -6219,7 +6220,7 @@ onig_free_body(regex_t* reg)
     ops_free(reg);
     if (IS_NOT_NULL(reg->string_pool)) {
       xfree(reg->string_pool);
-      reg->string_pool = 0;
+      reg->string_pool_end = reg->string_pool = 0;
     }
     if (IS_NOT_NULL(reg->exact))            xfree(reg->exact);
     if (IS_NOT_NULL(reg->repeat_range))     xfree(reg->repeat_range);
@@ -6277,6 +6278,7 @@ onig_compile(regex_t* reg, const UChar* pattern, const UChar* pattern_end,
     reg->ops_used = 0;
 
   reg->string_pool        = 0;
+  reg->string_pool_end    = 0;
   reg->num_mem            = 0;
   reg->num_repeat         = 0;
   reg->num_null_check     = 0;
index 0c3bf60d0d69ef2bc3b59eb580e33a7a2f827457..56767e83fd5095921b5fc2c42dfbe1800c1a3a12 100644 (file)
@@ -943,6 +943,7 @@ struct re_pattern_buffer {
   unsigned int ops_used;    /* used space for ops */
   unsigned int ops_alloc;   /* allocated space for ops */
   unsigned char* string_pool;
+  unsigned char* string_pool_end;
 
   int num_mem;                   /* used memory(...) num counted from 1 */
   int num_repeat;                /* OP_REPEAT/OP_REPEAT_NG id-counter */