From fd7dc1b6eaf13be7e8270558d12e17864a7446b1 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 4 Apr 2013 08:23:10 +0000 Subject: reduce overhead of TYPE * array.c (ary_join_1): reduce overhead of TYPE(). * eval.c (rb_frozen_class_p, rb_mod_{append,prepend}_features): ditto. * string.c (rb_to_id): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40105 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- array.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'array.c') diff --git a/array.c b/array.c index c0f6dd8cb6..76a3a6279d 100644 --- a/array.c +++ b/array.c @@ -1839,13 +1839,12 @@ ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first) rb_str_buf_append(result, sep); val = RARRAY_PTR(ary)[i]; - switch (TYPE(val)) { - case T_STRING: + if (RB_TYPE_P(val, T_STRING)) { str_join: rb_str_buf_append(result, val); *first = FALSE; - break; - case T_ARRAY: + } + else if (RB_TYPE_P(val, T_ARRAY)) { obj = val; ary_join: if (val == ary) { @@ -1860,8 +1859,8 @@ ary_join_1(VALUE obj, VALUE ary, VALUE sep, long i, VALUE result, int *first) args[3] = (VALUE)first; rb_exec_recursive(recursive_join, obj, (VALUE)args); } - break; - default: + } + else { tmp = rb_check_string_type(val); if (!NIL_P(tmp)) { val = tmp; -- cgit v1.2.3