summaryrefslogtreecommitdiff
path: root/node.c
diff options
context:
space:
mode:
Diffstat (limited to 'node.c')
-rw-r--r--node.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/node.c b/node.c
index 8a519f2947..064ce006ad 100644
--- a/node.c
+++ b/node.c
@@ -1218,6 +1218,15 @@ static void
mark_ast_value(void *ctx, NODE * node)
{
switch (nd_type(node)) {
+ case NODE_SCOPE:
+ {
+ ID *buf = node->nd_tbl;
+ if (buf) {
+ unsigned int size = (unsigned int)*buf;
+ rb_gc_mark((VALUE)buf[size + 1]);
+ }
+ break;
+ }
case NODE_LIT:
case NODE_STR:
case NODE_XSTR:
@@ -1226,7 +1235,6 @@ mark_ast_value(void *ctx, NODE * node)
case NODE_DREGX:
case NODE_DSYM:
case NODE_ARGS:
- case NODE_FOR:
case NODE_ARYPTN:
rb_gc_mark(node->nd_lit);
break;