summaryrefslogtreecommitdiff
path: root/vm_backtrace.c
diff options
context:
space:
mode:
authorJean Boussier <[email protected]>2024-03-06 11:04:22 -0500
committerPeter Zhu <[email protected]>2024-03-06 13:11:41 -0500
commitb4a69351ec7d6f0a5e34e3bb586053814be352c0 ()
tree7d413d26f6bcb60e98d3b353037c2406bc54c612 /vm_backtrace.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.
-rw-r--r--vm_backtrace.c6
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