ensure T_OBJECT objects have internals initialized

This commit is contained in:
Aaron Patterson 2020-11-04 11:33:59 -08:00 коммит произвёл Aaron Patterson
Родитель 704fb0b815
Коммит a8581ce673
1 изменённых файлов: 5 добавлений и 1 удалений

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

@ -2304,8 +2304,12 @@ rb_newobj(void)
VALUE
rb_newobj_of(VALUE klass, VALUE flags)
{
if ((flags & RUBY_T_MASK) == T_OBJECT) {
return newobj_of(klass, (flags | ROBJECT_EMBED) & ~FL_WB_PROTECTED , Qundef, Qundef, Qundef, flags & FL_WB_PROTECTED);
} else {
return newobj_of(klass, flags & ~FL_WB_PROTECTED, 0, 0, 0, flags & FL_WB_PROTECTED);
}
}
#define UNEXPECTED_NODE(func) \
rb_bug(#func"(): GC does not handle T_NODE 0x%x(%p) 0x%"PRIxVALUE, \