diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | parse.y | 10 |
2 files changed, 11 insertions, 4 deletions
@@ -1,3 +1,8 @@ +Fri Oct 29 11:35:04 2004 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * parse.y (rb_parser_append_print, rb_parser_while_loop): body node + can be empty. [ruby-dev:24628] + Fri Oct 29 10:00:30 2004 Yukihiro Matsumoto <matz@ruby-lang.org> * eval.c (ruby_cleanup): ruby_finalize_1 may cause exception, @@ -7771,9 +7771,10 @@ NODE* rb_parser_append_print(node) NODE *node; { - NODE *prelude = (nd_type(node) == NODE_PRELUDE) ? node : 0; + NODE *prelude = 0; - if (prelude) { + if (node && (nd_type(node) == NODE_PRELUDE)) { + prelude = node; node = node->nd_body; } node = block_append(node, @@ -7791,9 +7792,10 @@ rb_parser_while_loop(node, chop, split) NODE *node; int chop, split; { - NODE *prelude = (nd_type(node) == NODE_PRELUDE) ? node : 0; + NODE *prelude = 0; - if (prelude) { + if (node && (nd_type(node) == NODE_PRELUDE)) { + prelude = node; node = node->nd_body; } if (split) { |