aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-11-04 13:31:46 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-11-04 13:31:46 +0000
commitb9f85dd7fae8ce328e2a3510cc3c864b6e887b79 (patch)
tree82a33338cd5017cbb30d899638cf65f09fd5ad3e /parse.y
parent5b6a11d9f1b66497c575968acba2e55957fb9956 (diff)
downloadruby-b9f85dd7fae8ce328e2a3510cc3c864b6e887b79.tar.gz
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
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y8
1 files 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))