From 4a883ff9a8b1333cdc5b1cc65c46c775a47559bb Mon Sep 17 00:00:00 2001 From: nobu Date: Mon, 13 Oct 2014 00:40:32 +0000 Subject: [PATCH] parse.y: keep nodes linking * parse.y (remove_duplicate_keys): should keep nodes linking not to be collected. [Bug #10315] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47898 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/parse.y b/parse.y index af0f362847..5abd889f3c 100644 --- a/parse.y +++ b/parse.y @@ -9601,6 +9601,9 @@ append_literal_keys(st_data_t k, st_data_t v, st_data_t h) { NODE *node = (NODE *)v; NODE **result = (NODE **)h; + node->nd_alen = 2; + node->nd_next->nd_end = node->nd_next; + node->nd_next->nd_next = 0; if (*result) list_concat(*result, node); else @@ -9619,9 +9622,6 @@ remove_duplicate_keys(struct parser_params *parser, NODE *hash) NODE *next = value->nd_next; VALUE key = (VALUE)head; st_data_t data; - hash->nd_alen = 2; - value->nd_end = value; - value->nd_next = 0; if (nd_type(head) == NODE_LIT && st_lookup(literal_keys, (key = head->nd_lit), &data)) { rb_compile_warn(ruby_sourcefile, nd_line((NODE *)data),