diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-25 04:01:57 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-04-25 04:01:57 +0900 |
| commit | 83c1399af0d750e7a629dbf0ed6b7d0f59cf79ec (patch) | |
| tree | 7716a3f4b808387d5964229f1526043d3272b013 /src/array.c | |
| parent | 8a04dd84930e50c3aa18126a8c0215df9ea20844 (diff) | |
| download | mruby-83c1399af0d750e7a629dbf0ed6b7d0f59cf79ec.tar.gz mruby-83c1399af0d750e7a629dbf0ed6b7d0f59cf79ec.zip | |
eliminate plain int except for a few cases like arena_index
Diffstat (limited to 'src/array.c')
| -rw-r--r-- | src/array.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/src/array.c b/src/array.c index c8e88e197..403a63807 100644 --- a/src/array.c +++ b/src/array.c @@ -235,12 +235,11 @@ static mrb_value mrb_ary_s_create(mrb_state *mrb, mrb_value self) { mrb_value *vals; - int len; + mrb_int len; mrb_get_args(mrb, "*", &vals, &len); - mrb_assert(len <= MRB_INT_MAX); /* A rare case. So choosed assert() not raise(). */ - return mrb_ary_new_from_values(mrb, (mrb_int)len, vals); + return mrb_ary_new_from_values(mrb, len, vals); } static void @@ -409,7 +408,7 @@ static mrb_value mrb_ary_push_m(mrb_state *mrb, mrb_value self) { mrb_value *argv; - int len; + mrb_int len; mrb_get_args(mrb, "*", &argv, &len); while (len--) { @@ -495,7 +494,7 @@ mrb_ary_unshift_m(mrb_state *mrb, mrb_value self) { struct RArray *a = mrb_ary_ptr(self); mrb_value *vals; - int len; + mrb_int len; mrb_get_args(mrb, "*", &vals, &len); if (ARY_SHARED_P(a) @@ -825,18 +824,10 @@ mrb_ary_last(mrb_state *mrb, mrb_value self) { struct RArray *a = mrb_ary_ptr(self); mrb_int size; - mrb_value *vals; - int len; - - mrb_get_args(mrb, "*", &vals, &len); - if (len > 1) { - mrb_raise(mrb, E_ARGUMENT_ERROR, "wrong number of arguments"); - } - if (len == 0) return (a->len > 0)? a->ptr[a->len - 1]: mrb_nil_value(); + if (mrb_get_args(mrb, "|i", &size) == 0) + return (a->len > 0)? a->ptr[a->len - 1]: mrb_nil_value(); - /* len == 1 */ - size = mrb_fixnum(*vals); if (size < 0) { mrb_raise(mrb, E_ARGUMENT_ERROR, "negative array size"); } |
