From e49224284d9e3ddb3499c6f4a4f36a2d5c9f2af4 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Mon, 10 Sep 2012 22:09:24 +0900 Subject: OP_EQ should try direct compararison first --- include/mruby.h | 1 + src/vm.c | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/mruby.h b/include/mruby.h index 3063358f1..2f2f3753d 100644 --- a/include/mruby.h +++ b/include/mruby.h @@ -216,6 +216,7 @@ void mrb_p(mrb_state*, mrb_value); mrb_int mrb_obj_id(mrb_value obj); mrb_sym mrb_to_id(mrb_state *mrb, mrb_value name); +int mrb_obj_eq(mrb_state*, mrb_value, mrb_value); int mrb_obj_equal(mrb_state*, mrb_value, mrb_value); int mrb_equal(mrb_state *mrb, mrb_value obj1, mrb_value obj2); mrb_value mrb_Integer(mrb_state *mrb, mrb_value val); diff --git a/src/vm.c b/src/vm.c index c49d106c2..75a4cd442 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1495,7 +1495,13 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) CASE(OP_EQ) { /* A B C R(A) := R(A)