diff options
author | Jean Boussier <[email protected]> | 2024-03-06 11:04:22 -0500 |
---|---|---|
committer | Peter Zhu <[email protected]> | 2024-03-06 13:11:41 -0500 |
commit | b4a69351ec7d6f0a5e34e3bb586053814be352c0 () | |
tree | 7d413d26f6bcb60e98d3b353037c2406bc54c612 /vm_backtrace.c | |
parent | b88973165a9e970793eb187a4223d7521031ebc3 (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.
-rw-r--r-- | vm_backtrace.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -198,7 +198,7 @@ gen_method_name(VALUE owner, VALUE name) { bool permanent; if (RB_TYPE_P(owner, T_CLASS) || RB_TYPE_P(owner, T_MODULE)) { - if (RBASIC(owner)->flags & FL_SINGLETON) { VALUE v = RCLASS_ATTACHED_OBJECT(owner); if (RB_TYPE_P(v, T_CLASS) || RB_TYPE_P(v, T_MODULE)) { v = rb_mod_name0(v, &permanent); @@ -1784,7 +1784,7 @@ rb_profile_frame_classpath(VALUE frame) if (RB_TYPE_P(klass, T_ICLASS)) { klass = RBASIC(klass)->klass; } - else if (FL_TEST(klass, FL_SINGLETON)) { klass = RCLASS_ATTACHED_OBJECT(klass); if (!RB_TYPE_P(klass, T_CLASS) && !RB_TYPE_P(klass, T_MODULE)) return rb_sprintf("#<%s:%p>", rb_class2name(rb_obj_class(klass)), (void*)klass); @@ -1801,7 +1801,7 @@ rb_profile_frame_singleton_method_p(VALUE frame) { VALUE klass = frame2klass(frame); - return RBOOL(klass && !NIL_P(klass) && FL_TEST(klass, FL_SINGLETON)); } VALUE |