From d2d2e9f5f9267c2583aa542b4066d109a07b742e Mon Sep 17 00:00:00 2001 From: Yukihiro Matz Matsumoto Date: Sun, 4 Nov 2012 05:02:39 +0900 Subject: add new predicates mrb_string_p(),mrb_array_p(),mrb_hash_p() --- src/array.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/array.c') diff --git a/src/array.c b/src/array.c index 6b901b4ee..abe5d6379 100644 --- a/src/array.c +++ b/src/array.c @@ -294,7 +294,7 @@ mrb_ary_cmp(mrb_state *mrb, mrb_value ary1) int i, len; mrb_get_args(mrb, "o", &ary2); - if (mrb_type(ary2) != MRB_TT_ARRAY) return mrb_nil_value(); + if (!mrb_array_p(ary2)) return mrb_nil_value(); a1 = RARRAY(ary1); a2 = RARRAY(ary2); if (a1->len == a2->len && a1->ptr == a2->ptr) return mrb_fixnum_value(0); else { @@ -616,7 +616,7 @@ mrb_ary_splice(mrb_state *mrb, mrb_value ary, mrb_int head, mrb_int len, mrb_val tail = head + len; /* size check */ - if (mrb_type(rpl) == MRB_TT_ARRAY) { + if (mrb_array_p(rpl)) { argc = RARRAY_LEN(rpl); argv = RARRAY_PTR(rpl); } @@ -848,7 +848,7 @@ mrb_ary_rindex_m(mrb_state *mrb, mrb_value self) mrb_value mrb_ary_splat(mrb_state *mrb, mrb_value v) { - if (mrb_type(v) == MRB_TT_ARRAY) { + if (mrb_array_p(v)) { return v; } else { @@ -928,7 +928,7 @@ inspect_ary(mrb_state *mrb, mrb_value ary, mrb_value list) if (i > 0) { mrb_str_buf_cat(mrb, arystr, sep, sizeof(sep)); } - if (mrb_type(RARRAY_PTR(ary)[i]) == MRB_TT_ARRAY) { + if (mrb_array_p(RARRAY_PTR(ary)[i])) { s = inspect_ary(mrb, RARRAY_PTR(ary)[i], list); } else { s = mrb_inspect(mrb, RARRAY_PTR(ary)[i]); @@ -1068,7 +1068,7 @@ mrb_ary_equal(mrb_state *mrb, mrb_value ary1) mrb_get_args(mrb, "o", &ary2); if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_true_value(); if (SPECIAL_CONST_P(ary2)) return mrb_false_value(); - if (mrb_type(ary2) != MRB_TT_ARRAY) { + if (!mrb_array_p(ary2)) { if (!mrb_respond_to(mrb, ary2, mrb_intern(mrb, "to_ary"))) { return mrb_false_value(); } @@ -1107,7 +1107,7 @@ mrb_ary_eql(mrb_state *mrb, mrb_value ary1) mrb_get_args(mrb, "o", &ary2); if (mrb_obj_equal(mrb, ary1, ary2)) return mrb_true_value(); - if (mrb_type(ary2) != MRB_TT_ARRAY) return mrb_false_value(); + if (!mrb_array_p(ary2)) return mrb_false_value(); if (RARRAY_LEN(ary1) != RARRAY_LEN(ary2)) return mrb_false_value(); else { int i; -- cgit v1.2.3