Don't attempt to read ivars on T_ICLASS in struct (#5664)
This commit is contained in:
parent
c3929b8c73
commit
adc709adb8
Notes:
git
2022-05-27 03:54:39 +09:00
Merged-By: jhawthorn <john@hawthorn.email>
15
struct.c
15
struct.c
@ -43,13 +43,14 @@ struct_ivar_get(VALUE c, ID id)
|
||||
return ivar;
|
||||
|
||||
for (;;) {
|
||||
c = RCLASS_SUPER(c);
|
||||
if (c == 0 || c == rb_cStruct)
|
||||
return Qnil;
|
||||
ivar = rb_attr_get(c, id);
|
||||
if (!NIL_P(ivar)) {
|
||||
return rb_ivar_set(orig, id, ivar);
|
||||
}
|
||||
c = rb_class_superclass(c);
|
||||
if (c == 0 || c == rb_cStruct)
|
||||
return Qnil;
|
||||
RUBY_ASSERT(RB_TYPE_P(c, T_CLASS));
|
||||
ivar = rb_attr_get(c, id);
|
||||
if (!NIL_P(ivar)) {
|
||||
return rb_ivar_set(orig, id, ivar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user