summaryrefslogtreecommitdiffhomepage
path: root/src/array.c
diff options
context:
space:
mode:
authorYukihiro Matz Matsumoto <[email protected]>2012-11-04 05:02:39 +0900
committerYukihiro Matz Matsumoto <[email protected]>2012-11-04 05:02:39 +0900
commitd2d2e9f5f9267c2583aa542b4066d109a07b742e (patch)
treec9c5747bfbb489c063ad72e4d68b0de3e818ac1f /src/array.c
parent051777dc5de7e16ab28d39530fc0bb8101323e2c (diff)
downloadmruby-d2d2e9f5f9267c2583aa542b4066d109a07b742e.tar.gz
mruby-d2d2e9f5f9267c2583aa542b4066d109a07b742e.zip
add new predicates mrb_string_p(),mrb_array_p(),mrb_hash_p()
Diffstat (limited to 'src/array.c')
-rw-r--r--src/array.c12
1 files changed, 6 insertions, 6 deletions
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;