struct.c (struct_ivar_get): add conditional for potential Qnil returned by rb_class_superclass

struct_ivar_get recently started using rb_class_superclass to
resolve super instead of RCLASS_SUPER. This change made
Qnil a possible case we need to return from within the
struct_ivar_get for loop.
This commit is contained in:
Zack Deveau 2022-11-29 14:40:43 -05:00 коммит произвёл Alan Wu
Родитель 0d3fc08ff4
Коммит 4b9d10b833
1 изменённых файлов: 1 добавлений и 1 удалений

Просмотреть файл

@ -48,7 +48,7 @@ struct_ivar_get(VALUE c, ID id)
for (;;) {
c = rb_class_superclass(c);
if (c == 0 || c == rb_cStruct || c == rb_cData)
if (c == 0 || c == rb_cStruct || c == rb_cData || c == Qnil)
return Qnil;
RUBY_ASSERT(RB_TYPE_P(c, T_CLASS));
ivar = rb_attr_get(c, id);