diff options
author | Peter Zhu <peter@peterzhu.ca> | 2023-07-26 15:57:03 -0400 |
---|---|---|
committer | Peter Zhu <peter@peterzhu.ca> | 2023-07-27 13:33:40 -0400 |
commit | 7193b404a1a56e50f8046d0382914907020c1559 (patch) | |
tree | f0d17c30d36039eab9b8c421e24d412535e05d5e /regexec.c | |
parent | e5effa4bd063f454f9f304e6f9fbf9dd8b353a76 (diff) | |
download | ruby-7193b404a1a56e50f8046d0382914907020c1559.tar.gz |
Add function rb_reg_onig_match
rb_reg_onig_match performs preparation, error handling, and cleanup for
matching a regex against a string. This reduces repetitive code and
removes the need for StringScanner to access internal data of regex.
Diffstat (limited to 'regexec.c')
-rw-r--r-- | regexec.c | 8 |
1 files changed, 6 insertions, 2 deletions
@@ -888,12 +888,16 @@ onig_region_free(OnigRegion* r, int free_self) if (r->allocated > 0) { xfree(r->beg); xfree(r->end); - r->allocated = 0; } #ifdef USE_CAPTURE_HISTORY history_root_free(r); #endif - if (free_self) xfree(r); + if (free_self) { + xfree(r); + } + else { + memset(r, 0, sizeof(OnigRegion)); + } } } |