From 552fa153f0d370973580613cb9fddaec4af5966a Mon Sep 17 00:00:00 2001 From: nobu Date: Tue, 12 Feb 2008 16:27:22 +0000 Subject: * parse.y (stmt, arg): concat opt_call_args only if non-null. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 4 +++- parse.y | 14 ++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index f95af299cd..857baaa5a3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,6 @@ -Wed Feb 13 01:26:45 2008 Nobuyoshi Nakada +Wed Feb 13 01:27:20 2008 Nobuyoshi Nakada + + * parse.y (stmt, arg): concat opt_call_args only if non-null. * parse.y (arg_concat_gen, arg_append_gen): optimize for array concat. diff --git a/parse.y b/parse.y index 50eaa5f7c7..2b6e06bb2d 100644 --- a/parse.y +++ b/parse.y @@ -1027,11 +1027,10 @@ stmt : keyword_alias fitem {lex_state = EXPR_FNAME;} fitem | primary_value '[' opt_call_args rbracket tOP_ASGN command_call { /*%%%*/ - NODE *args; + NODE *args = $6; - value_expr($6); - if (!$3) $3 = NEW_ZARRAY(); - args = arg_concat($6, $3); + value_expr(args); + if ($3) args = arg_concat(args, $3); if ($5 == tOROP) { $5 = 0; } @@ -1829,11 +1828,10 @@ arg : lhs '=' arg | primary_value '[' opt_call_args rbracket tOP_ASGN arg { /*%%%*/ - NODE *args; + NODE *args = $6; - value_expr($6); - if (!$3) $3 = NEW_ZARRAY(); - args = arg_concat($6, $3); + value_expr(args); + if ($3) args = arg_concat(args, $3); if ($5 == tOROP) { $5 = 0; } -- cgit v1.2.3