From fbc8b87e946b4da6c94adff908dd1c3cbc4232de Mon Sep 17 00:00:00 2001 From: mame Date: Sat, 4 Nov 2017 13:31:46 +0000 Subject: [PATCH] parse.y (new_args_tail_gen): returns a NODE instead of imemo `new_args_tail_gen` returned imemo, but the value was later accessed as `NODE*`. This prevented change of NODE structure. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60647 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/parse.y b/parse.y index e42763015d..a608cfa556 100644 --- a/parse.y +++ b/parse.y @@ -876,9 +876,11 @@ new_args_gen(struct parser_params *parser, VALUE f, VALUE o, VALUE r, VALUE p, V static inline VALUE new_args_tail_gen(struct parser_params *parser, VALUE k, VALUE kr, VALUE b) { - VALUE r = (VALUE)MEMO_NEW(k, kr, b); - add_mark_object(r); - return r; + NODE *t = rb_node_newnode(NODE_ARGS_AUX, k, kr, b); + add_mark_object(k); + add_mark_object(kr); + add_mark_object(b); + return (VALUE)t; } #define new_args_tail(k,kr,b,location) new_args_tail_gen(parser, (k),(kr),(b))