summaryrefslogtreecommitdiffhomepage
path: root/src/vm.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/vm.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/vm.c')
-rw-r--r--src/vm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/vm.c b/src/vm.c
index 953863a0b..b5bde896b 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -992,7 +992,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
struct RArray *rest;
int len = 0;
- if (mrb_type(stack[m1]) == MRB_TT_ARRAY) {
+ if (mrb_array_p(stack[m1])) {
struct RArray *ary = mrb_ary_ptr(stack[m1]);
pp = ary->ptr;
@@ -1047,7 +1047,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
}
}
}
- else if (len > 1 && argc == 1 && mrb_type(argv[0]) == MRB_TT_ARRAY) {
+ else if (len > 1 && argc == 1 && mrb_array_p(argv[0])) {
argc = mrb_ary_ptr(argv[0])->len;
argv = mrb_ary_ptr(argv[0])->ptr;
}
@@ -1592,7 +1592,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
int c = GETARG_C(i);
mrb_value v = regs[GETARG_B(i)];
- if (mrb_type(v) != MRB_TT_ARRAY) {
+ if (!mrb_array_p(v)) {
if (c == 0) {
regs[GETARG_A(i)] = v;
}
@@ -1619,7 +1619,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
int pre = GETARG_B(i);
int post = GETARG_C(i);
- if (mrb_type(v) != MRB_TT_ARRAY) {
+ if (!mrb_array_p(v)) {
regs[a++] = mrb_ary_new_capa(mrb, 0);
while (post--) {
SET_NIL_VALUE(regs[a]);