From 49ae2a69f2c3acbb952406768320401cf1769425 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 20 Jun 2020 12:49:46 +0900 Subject: Add `mrb_get_arg1()` that retrieves single (and only) argument. `mrb_get_arg1()` raises `ArgumentError` if the method does not receive one argument. And replaces all `mrb_get_args(mrb, "o", &arg)` by the new function. --- src/range.c | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'src/range.c') diff --git a/src/range.c b/src/range.c index 6df5d13a3..0b4e6dbca 100644 --- a/src/range.c +++ b/src/range.c @@ -182,11 +182,9 @@ range_eq(mrb_state *mrb, mrb_value range) { struct RRange *rr; struct RRange *ro; - mrb_value obj; + mrb_value obj = mrb_get_arg1(mrb); mrb_bool v1, v2; - mrb_get_args(mrb, "o", &obj); - if (mrb_obj_equal(mrb, range, obj)) return mrb_true_value(); if (!mrb_obj_is_instance_of(mrb, obj, mrb_obj_class(mrb, range))) { /* same class? */ return mrb_false_value(); @@ -211,13 +209,11 @@ range_eq(mrb_state *mrb, mrb_value range) static mrb_value range_include(mrb_state *mrb, mrb_value range) { - mrb_value val; + mrb_value val = mrb_get_arg1(mrb); struct RRange *r = mrb_range_ptr(mrb, range); mrb_value beg, end; mrb_bool include_p; - mrb_get_args(mrb, "o", &val); - beg = RANGE_BEG(r); end = RANGE_END(r); include_p = r_le(mrb, beg, val) && /* beg <= val */ @@ -289,11 +285,9 @@ range_inspect(mrb_state *mrb, mrb_value range) static mrb_value range_eql(mrb_state *mrb, mrb_value range) { - mrb_value obj; + mrb_value obj = mrb_get_arg1(mrb); struct RRange *r, *o; - mrb_get_args(mrb, "o", &obj); - if (mrb_obj_equal(mrb, range, obj)) return mrb_true_value(); if (!mrb_obj_is_kind_of(mrb, obj, mrb->range_class)) return mrb_false_value(); if (!mrb_range_p(obj)) return mrb_false_value(); @@ -312,11 +306,9 @@ range_eql(mrb_state *mrb, mrb_value range) static mrb_value range_initialize_copy(mrb_state *mrb, mrb_value copy) { - mrb_value src; + mrb_value src = mrb_get_arg1(mrb); struct RRange *r; - mrb_get_args(mrb, "o", &src); - if (mrb_obj_equal(mrb, copy, src)) return copy; if (!mrb_obj_is_instance_of(mrb, src, mrb_obj_class(mrb, copy))) { mrb_raise(mrb, E_TYPE_ERROR, "wrong argument class"); -- cgit v1.2.3