зеркало из https://github.com/github/ruby.git
Bail out before pushing unexpected object
This commit is contained in:
Родитель
2544bf9452
Коммит
2a4049b23c
12
gc.c
12
gc.c
|
@ -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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче