diff options
author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-09-11 22:50:59 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2021-09-12 11:16:51 +0900 |
commit | c5570a7c11ba0872e171500a548f2ecb82e94588 (patch) | |
tree | 67f486af2ade6b02450e59dc6df572f0a08f9912 /re.c | |
parent | 99d8c4832a7133ca52578d015e3ddcfd94820f4a (diff) |
Extract backref_number_check
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/4822
Diffstat (limited to 're.c')
-rw-r--r-- | re.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -1159,6 +1159,13 @@ name_to_backref_error(VALUE name) name); } +static void +backref_number_check(struct re_registers *regs, int i) +{ + if (i < 0 || regs->num_regs <= i) + rb_raise(rb_eIndexError, "index %d out of matches", i); +} + static int match_backref_number(VALUE match, VALUE backref) { @@ -1217,8 +1224,7 @@ match_offset(VALUE match, VALUE n) struct re_registers *regs = RMATCH_REGS(match); match_check(match); - if (i < 0 || regs->num_regs <= i) - rb_raise(rb_eIndexError, "index %d out of matches", i); + backref_number_check(regs, i); if (BEG(i) < 0) return rb_assoc_new(Qnil, Qnil); @@ -1253,8 +1259,7 @@ match_begin(VALUE match, VALUE n) struct re_registers *regs = RMATCH_REGS(match); match_check(match); - if (i < 0 || regs->num_regs <= i) - rb_raise(rb_eIndexError, "index %d out of matches", i); + backref_number_check(regs, i); if (BEG(i) < 0) return Qnil; @@ -1288,8 +1293,7 @@ match_end(VALUE match, VALUE n) struct re_registers *regs = RMATCH_REGS(match); match_check(match); - if (i < 0 || regs->num_regs <= i) - rb_raise(rb_eIndexError, "index %d out of matches", i); + backref_number_check(regs, i); if (BEG(i) < 0) return Qnil; |