diff options
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -4629,6 +4629,18 @@ free_stack_chunks(mark_stack_t *stack) static void push_mark_stack(mark_stack_t *stack, VALUE data) { + VALUE obj = data; + switch (BUILTIN_TYPE(obj)) { + case T_NIL: + case T_FIXNUM: + rb_bug("push_mark_stack() called for broken object"); + break; + + case T_NODE: + UNEXPECTED_NODE(push_mark_stack); + break; + } + if (stack->index == stack->limit) { push_mark_stack_chunk(stack); } |