Use rb_attr_get() for hidden ivar
rb_ivar_get() can issue an uninitialized ivar warning. We never want to issue warnings about hidden ivars as they are not actionable for users.
This commit is contained in:
parent
1bd98ee295
commit
7826210541
Notes:
git
2020-11-14 01:46:35 +09:00
4
class.c
4
class.c
@ -1811,7 +1811,7 @@ singleton_class_of(VALUE obj)
|
|||||||
|
|
||||||
klass = RBASIC(obj)->klass;
|
klass = RBASIC(obj)->klass;
|
||||||
if (!(FL_TEST(klass, FL_SINGLETON) &&
|
if (!(FL_TEST(klass, FL_SINGLETON) &&
|
||||||
rb_ivar_get(klass, id_attached) == obj)) {
|
rb_attr_get(klass, id_attached) == obj)) {
|
||||||
rb_serial_t serial = RCLASS_SERIAL(klass);
|
rb_serial_t serial = RCLASS_SERIAL(klass);
|
||||||
klass = rb_make_metaclass(obj, klass);
|
klass = rb_make_metaclass(obj, klass);
|
||||||
RCLASS_SERIAL(klass) = serial;
|
RCLASS_SERIAL(klass) = serial;
|
||||||
@ -1852,7 +1852,7 @@ rb_singleton_class_get(VALUE obj)
|
|||||||
}
|
}
|
||||||
klass = RBASIC(obj)->klass;
|
klass = RBASIC(obj)->klass;
|
||||||
if (!FL_TEST(klass, FL_SINGLETON)) return Qnil;
|
if (!FL_TEST(klass, FL_SINGLETON)) return Qnil;
|
||||||
if (rb_ivar_get(klass, id_attached) != obj) return Qnil;
|
if (rb_attr_get(klass, id_attached) != obj) return Qnil;
|
||||||
return klass;
|
return klass;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user