summaryrefslogtreecommitdiff
path: root/re.c
diff options
context:
space:
mode:
authorPeter Zhu <peter@peterzhu.ca>2023-07-27 14:04:02 -0400
committerPeter Zhu <peter@peterzhu.ca>2023-07-27 14:04:02 -0400
commit511c51e116fdd44314bef977e941d90331d07efd (patch)
tree50d0b27711d6e2872aefecfb6032281649ee22fe /re.c
parent7193b404a1a56e50f8046d0382914907020c1559 (diff)
Refactor err string in rb_reg_prepare_re
Diffstat (limited to 're.c')
-rw-r--r--re.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/re.c b/re.c
index 35cdc2d810..4191d33129 100644
--- a/re.c
+++ b/re.c
@@ -1576,7 +1576,7 @@ rb_reg_prepare_enc(VALUE re, VALUE str, int warn)
}
static regex_t *
-rb_reg_prepare_re(VALUE re, VALUE str, onig_errmsg_buffer err)
+rb_reg_prepare_re(VALUE re, VALUE str)
{
regex_t *reg = RREGEXP_PTR(re);
int r;
@@ -1592,6 +1592,7 @@ rb_reg_prepare_re(VALUE re, VALUE str, onig_errmsg_buffer err)
reg = RREGEXP_PTR(re);
pattern = RREGEXP_SRC_PTR(re);
+ onig_errmsg_buffer err = "";
unescaped = rb_reg_preprocess(
pattern, pattern + RREGEXP_SRC_LEN(re), enc,
&fixed_enc, err, 0);
@@ -1625,8 +1626,7 @@ rb_reg_onig_match(VALUE re, VALUE str,
OnigPosition (*match)(regex_t *reg, VALUE str, struct re_registers *regs, void *args),
void *args, struct re_registers *regs)
{
- onig_errmsg_buffer err = "";
- regex_t *reg = rb_reg_prepare_re(re, str, err);
+ regex_t *reg = rb_reg_prepare_re(re, str);
bool tmpreg = reg != RREGEXP_PTR(re);
if (!tmpreg) RREGEXP(re)->usecnt++;
@@ -1648,6 +1648,7 @@ rb_reg_onig_match(VALUE re, VALUE str,
onig_region_free(regs, 0);
if (result != ONIG_MISMATCH) {
+ onig_errmsg_buffer err = "";
onig_error_code_to_str((UChar*)err, (int)result);
rb_reg_raise(RREGEXP_SRC_PTR(re), RREGEXP_SRC_LEN(re), err, re);
}