mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
re.c: RB_TYPE_P
* re.c (match_backref_number, namev_to_backref_number): use RB_TYPE_P instead of switching by TYPE. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
cb8d09bb8d
commit
528f870e14
1 changed files with 14 additions and 22 deletions
36
re.c
36
re.c
|
@ -1123,18 +1123,13 @@ match_backref_number(VALUE match, VALUE backref)
|
|||
VALUE regexp = RMATCH(match)->regexp;
|
||||
|
||||
match_check(match);
|
||||
switch (TYPE(backref)) {
|
||||
default:
|
||||
return NUM2INT(backref);
|
||||
|
||||
case T_SYMBOL:
|
||||
if (SYMBOL_P(backref)) {
|
||||
backref = rb_sym2str(backref);
|
||||
/* fall through */
|
||||
|
||||
case T_STRING:
|
||||
name = StringValueCStr(backref);
|
||||
break;
|
||||
}
|
||||
else if (!RB_TYPE_P(backref, T_STRING)) {
|
||||
return NUM2INT(backref);
|
||||
}
|
||||
name = StringValueCStr(backref);
|
||||
|
||||
num = name_to_backref_number(regs, regexp, name, name + strlen(name));
|
||||
|
||||
|
@ -1839,21 +1834,18 @@ namev_to_backref_number(struct re_registers *regs, VALUE re, VALUE name)
|
|||
{
|
||||
int num;
|
||||
|
||||
switch (TYPE(name)) {
|
||||
case T_SYMBOL:
|
||||
if (SYMBOL_P(name)) {
|
||||
name = rb_sym2str(name);
|
||||
/* fall through */
|
||||
case T_STRING:
|
||||
num = NAME_TO_NUMBER(regs, re, name,
|
||||
RSTRING_PTR(name), RSTRING_END(name));
|
||||
if (num < 1) {
|
||||
name_to_backref_error(name);
|
||||
}
|
||||
return num;
|
||||
|
||||
default:
|
||||
}
|
||||
else if (!RB_TYPE_P(name, T_STRING)) {
|
||||
return -1;
|
||||
}
|
||||
num = NAME_TO_NUMBER(regs, re, name,
|
||||
RSTRING_PTR(name), RSTRING_END(name));
|
||||
if (num < 1) {
|
||||
name_to_backref_error(name);
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
static VALUE
|
||||
|
|
Loading…
Add table
Reference in a new issue