summaryrefslogtreecommitdiff
path: root/mjit.c
diff options
context:
space:
mode:
authork0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-04-03 15:42:00 +0000
committerk0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2018-04-03 15:42:00 +0000
commitbc34d92f3dd7d78752fcdd1a2c4a6cbbcb01017b (patch)
tree2c124807588840ab2a1ff713668f4bd4a9f6002d /mjit.c
parent7f30b84c4f16fb87b2c85097763f573d357e412d (diff)
mjit.c: add class serial of singleton class
for toplevel self. Toplevel self's class is not `Object` but `#<Class:Object>`. This commit allows to inline method call setup for toplevel methods. I've thought r63053 works but it doesn't... I actually want to add all singleton classes but I'm not sure what's the good way for it. I assumed that using ObjectSpace.each_object is suboptimal. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63077 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'mjit.c')
-rw-r--r--mjit.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/mjit.c b/mjit.c
index a5c75e5103..4ba45cd0ec 100644
--- a/mjit.c
+++ b/mjit.c
@@ -1380,6 +1380,7 @@ mjit_init(struct mjit_options *opts)
rb_obj_hide(valid_class_serials);
rb_gc_register_mark_object(valid_class_serials);
mjit_add_class_serial(RCLASS_SERIAL(rb_cObject));
+ mjit_add_class_serial(RCLASS_SERIAL(CLASS_OF(rb_vm_top_self())));
if (RCLASS_CONST_TBL(rb_cObject)) {
rb_id_table_foreach(RCLASS_CONST_TBL(rb_cObject), valid_class_serials_add_i, NULL);
}