diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | compile.c | 36 |
2 files changed, 24 insertions, 16 deletions
@@ -1,3 +1,7 @@ +Tue Jul 10 16:52:01 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * compile.c (rb_iseq_compile): formatted if/else to switch statement. + Tue Jul 10 15:57:53 2007 Nobuyoshi Nakada <nobu@ruby-lang.org> * bootstraptest/test_flip.rb: new test for flip-flop operator. @@ -151,7 +151,8 @@ rb_iseq_compile(VALUE self, NODE *node) set_local_table(iseq, node->nd_tbl); set_arguments(iseq, ret, node->nd_args); - if (iseq->type == ISEQ_TYPE_BLOCK) { + switch (iseq->type) { + case ISEQ_TYPE_BLOCK: { LABEL *start = iseq->compile_data->start_label = NEW_LABEL(0); LABEL *end = iseq->compile_data->end_label = NEW_LABEL(0); @@ -162,21 +163,24 @@ rb_iseq_compile(VALUE self, NODE *node) /* wide range catch handler must put at last */ ADD_CATCH_ENTRY(CATCH_TYPE_REDO, start, end, 0, start); ADD_CATCH_ENTRY(CATCH_TYPE_NEXT, start, end, 0, end); - } - else { - if (iseq->type == ISEQ_TYPE_CLASS) { - ADD_TRACE(ret, nd_line(node), RUBY_EVENT_CLASS); - COMPILE(ret, "scoped node", node->nd_body); - ADD_TRACE(ret, nd_line(node), RUBY_EVENT_END); - } - else if (iseq->type == ISEQ_TYPE_METHOD) { - ADD_TRACE(ret, nd_line(node), RUBY_EVENT_CALL); - COMPILE(ret, "scoped node", node->nd_body); - ADD_TRACE(ret, nd_line(node), RUBY_EVENT_RETURN); - } - else { - COMPILE(ret, "scoped node", node->nd_body); - } + break; + } + case ISEQ_TYPE_CLASS: { + ADD_TRACE(ret, nd_line(node), RUBY_EVENT_CLASS); + COMPILE(ret, "scoped node", node->nd_body); + ADD_TRACE(ret, nd_line(node), RUBY_EVENT_END); + break; + } + case ISEQ_TYPE_METHOD: { + ADD_TRACE(ret, nd_line(node), RUBY_EVENT_CALL); + COMPILE(ret, "scoped node", node->nd_body); + ADD_TRACE(ret, nd_line(node), RUBY_EVENT_RETURN); + break; + } + default: { + COMPILE(ret, "scoped node", node->nd_body); + break; + } } } else { |