diff options
author | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-04-03 15:42:00 +0000 |
---|---|---|
committer | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-04-03 15:42:00 +0000 |
commit | bc34d92f3dd7d78752fcdd1a2c4a6cbbcb01017b (patch) | |
tree | 2c124807588840ab2a1ff713668f4bd4a9f6002d | |
parent | 7f30b84c4f16fb87b2c85097763f573d357e412d (diff) | |
download | ruby-bc34d92f3dd7d78752fcdd1a2c4a6cbbcb01017b.tar.gz |
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
-rw-r--r-- | mjit.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -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); } |