From 86a8b820d636a36ddc49f9c906f5d0744dd3ef23 Mon Sep 17 00:00:00 2001 From: ko1 Date: Mon, 27 Sep 2010 14:47:30 +0000 Subject: * insns.def (opt_case_dispatch), vm_insnhelper.c: execute the procedures of "when" clauses by bytecode instead of st_foreach() when the object does not hit prepared hash. [ruby-dev:42304] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- vm_insnhelper.c | 19 ------------------- 1 file changed, 19 deletions(-) (limited to 'vm_insnhelper.c') diff --git a/vm_insnhelper.c b/vm_insnhelper.c index c26f50eeb4..46326d1de4 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -1699,22 +1699,3 @@ opt_eq_func(VALUE recv, VALUE obj, IC ic) return Qundef; } -struct opt_case_dispatch_i_arg { - VALUE obj; - int label; -}; - -static int -opt_case_dispatch_i(st_data_t key, st_data_t data, st_data_t p) -{ - struct opt_case_dispatch_i_arg *arg = (void *)p; - - if (RTEST(rb_funcall((VALUE)key, idEqq, 1, arg->obj))) { - arg->label = FIX2INT((VALUE)data); - return ST_STOP; - } - else { - return ST_CONTINUE; - } -} - -- cgit v1.2.3