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 удалений

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

@ -2304,7 +2304,11 @@ rb_newobj(void)
VALUE
rb_newobj_of(VALUE klass, VALUE flags)
{
return newobj_of(klass, flags & ~FL_WB_PROTECTED, 0, 0, 0, flags & FL_WB_PROTECTED);
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) \