summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2022-10-10 13:21:57 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2022-10-10 13:21:57 +0900
commit0a98dd1cffe09c2c17e60e1a1c75bad7e4337002 (patch)
treebf7c415b206b9713a51dde00dd46c86dce64c0d4
parent4954c9fc0f9d06aa4e3e8deb33b41f3fae294adc (diff)
Should use dedecated function `Check_Type`
-rw-r--r--re.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/re.c b/re.c
index ff9d5bccc4..4d0dcf95cc 100644
--- a/re.c
+++ b/re.c
@@ -2393,12 +2393,7 @@ match_deconstruct_keys(VALUE match, VALUE keys)
return h;
}
- if (UNLIKELY(!RB_TYPE_P(keys, T_ARRAY))) {
- rb_raise(rb_eTypeError,
- "wrong argument type %"PRIsVALUE" (expected Array or nil)",
- rb_obj_class(keys));
-
- }
+ Check_Type(keys, T_ARRAY);
if (onig_number_of_names(RREGEXP_PTR(RMATCH(match)->regexp)) < RARRAY_LEN(keys)) {
return rb_hash_new_with_size(0);
@@ -2410,11 +2405,7 @@ match_deconstruct_keys(VALUE match, VALUE keys)
VALUE key = RARRAY_AREF(keys, i);
VALUE name;
- if (UNLIKELY(!SYMBOL_P(key))) {
- rb_raise(rb_eTypeError,
- "wrong argument type %"PRIsVALUE" (expected Symbol)",
- rb_obj_class(key));
- }
+ Check_Type(key, T_SYMBOL);
name = rb_sym2str(key);
@@ -2423,7 +2414,8 @@ match_deconstruct_keys(VALUE match, VALUE keys)
if (num >= 0) {
rb_hash_aset(h, key, rb_reg_nth_match(num, match));
- } else {
+ }
+ else {
return h;
}
}