summaryrefslogtreecommitdiff
path: root/variable.c
diff options
authorJean Boussier <byroot@ruby-lang.org>2024-03-06 11:04:22 -0500
committerPeter Zhu <peter@peterzhu.ca>2024-03-06 13:11:41 -0500
commitb4a69351ec7d6f0a5e34e3bb586053814be352c0 (patch)
tree7d413d26f6bcb60e98d3b353037c2406bc54c612 /variable.c
parentb88973165a9e970793eb187a4223d7521031ebc3 (diff)
Move FL_SINGLETON to FL_USER1
This frees FL_USER0 on both T_MODULE and T_CLASS. Note: prior to this, FL_SINGLETON was never set on T_MODULE, so checking for `FL_SINGLETON` without first checking that `FL_TYPE` was `T_CLASS` was valid. That's no longer the case.
Diffstat (limited to 'variable.c')
-rw-r--r--variable.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/variable.c b/variable.c
index 0f9c5f6111..eaedbc2d48 100644
--- a/variable.c
+++ b/variable.c
@@ -1826,7 +1826,7 @@ void rb_obj_freeze_inline(VALUE x)
}
rb_shape_set_shape(x, next_shape);
- if (RBASIC_CLASS(x) && !(RBASIC(x)->flags & RUBY_FL_SINGLETON)) {
+ if (RBASIC_CLASS(x)) {
rb_freeze_singleton_class(x);
}
}
@@ -3855,7 +3855,7 @@ cvar_lookup_at(VALUE klass, ID id, st_data_t *v)
static VALUE
cvar_front_klass(VALUE klass)
{
- if (FL_TEST(klass, FL_SINGLETON)) {
+ if (RCLASS_SINGLETON_P(klass)) {
VALUE obj = RCLASS_ATTACHED_OBJECT(klass);
if (rb_namespace_p(obj)) {
return obj;
@@ -4064,7 +4064,7 @@ static void*
mod_cvar_of(VALUE mod, void *data)
{
VALUE tmp = mod;
- if (FL_TEST(mod, FL_SINGLETON)) {
+ if (RCLASS_SINGLETON_P(mod)) {
if (rb_namespace_p(RCLASS_ATTACHED_OBJECT(mod))) {
data = mod_cvar_at(tmp, data);
tmp = cvar_front_klass(tmp);
close