`NODE_MATCH` needs to be marked / allocated from marking bucket

Fixes a test in RubySpec
This commit is contained in:
Aaron Patterson 2019-09-10 10:44:49 -07:00
Родитель 83ef58f264
Коммит 414a80d242
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 953170BCB4FFAFC6
1 изменённых файлов: 3 добавлений и 1 удалений

4
node.c
Просмотреть файл

@ -1194,6 +1194,7 @@ rb_ast_newnode(rb_ast_t *ast, enum node_type type)
{ {
node_buffer_t *nb = ast->node_buffer; node_buffer_t *nb = ast->node_buffer;
switch (type) { switch (type) {
case NODE_MATCH:
case NODE_LIT: case NODE_LIT:
case NODE_STR: case NODE_STR:
case NODE_XSTR: case NODE_XSTR:
@ -1277,6 +1278,7 @@ mark_ast_value(void *ctx, NODE * node)
rb_gc_mark(args->imemo); rb_gc_mark(args->imemo);
break; break;
} }
case NODE_MATCH:
case NODE_LIT: case NODE_LIT:
case NODE_STR: case NODE_STR:
case NODE_XSTR: case NODE_XSTR:
@ -1287,7 +1289,7 @@ mark_ast_value(void *ctx, NODE * node)
rb_gc_mark(node->nd_lit); rb_gc_mark(node->nd_lit);
break; break;
default: default:
rb_bug("unreachable"); rb_bug("unreachable node %s", ruby_node_name(nd_type(node)));
} }
} }