diff --git a/ChangeLog b/ChangeLog index 7d83143ac2..6c8c2d7741 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Oct 29 11:35:04 2004 Nobuyoshi Nakada + + * 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 * eval.c (ruby_cleanup): ruby_finalize_1 may cause exception, diff --git a/parse.y b/parse.y index d18c59b06b..123fa9e6a0 100644 --- a/parse.y +++ b/parse.y @@ -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) {