diff options
author | Jean Boussier <[email protected]> | 2024-04-16 15:30:00 +0200 |
---|---|---|
committer | Jean Boussier <[email protected]> | 2024-04-16 17:20:35 +0200 |
commit | f06670c5a2a1daa6595018858d5cfa429a8aeae6 () | |
tree | f41c57d0089600f9faf5379d61d0aad6fbbaadee /class.c | |
parent | 7380e3d30ff3d33fa7dd3756929e5718be665bba (diff) |
Eliminate usage of OBJ_FREEZE_RAW
Previously it would bypass the `FL_ABLE` check, but since shapes introduction, it started having a different behavior than `OBJ_FREEZE`, as it would onyl set the `FL_FREEZE` flag, but not update the shape. I have no indication of this causing a bug yet, but it seems like a trap waiting to happen.
-rw-r--r-- | class.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -2273,7 +2273,7 @@ rb_freeze_singleton_class(VALUE x) VALUE klass = RBASIC_CLASS(x); if (klass && // no class when hidden from ObjectSpace FL_TEST(klass, (FL_SINGLETON|FL_FREEZE)) == FL_SINGLETON) { - OBJ_FREEZE_RAW(klass); } } } |