summaryrefslogtreecommitdiff
path: root/yjit_iface.c
diff options
context:
space:
mode:
authorJohn Hawthorn <john@hawthorn.email>2021-08-30 20:58:53 -0700
committerAlan Wu <XrXr@users.noreply.github.com>2021-10-20 18:19:39 -0400
commit3ecc6befcdfb14c6bfd345bd6bebd2e84dc32c27 (patch)
treeacb3ff0fd7944c055f90a101cb2aa970ea564051 /yjit_iface.c
parentfbde1d9bee1da0a27ead6ce3ae7bc4411b10198d (diff)
Implement invokesuper using cfp->ep[ME] check
This fixes and re-enables invokesuper, replacing the existing guards with a guard on the method entry for the EP.
Diffstat (limited to 'yjit_iface.c')
-rw-r--r--yjit_iface.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/yjit_iface.c b/yjit_iface.c
index b0f697c3de..c11f8db493 100644
--- a/yjit_iface.c
+++ b/yjit_iface.c
@@ -232,7 +232,7 @@ assume_method_lookup_stable(VALUE receiver_klass, const rb_callable_method_entry
RUBY_ASSERT(cme_validity_dependency);
RUBY_ASSERT(method_lookup_dependency);
RUBY_ASSERT(rb_callable_method_entry(receiver_klass, cme->called_id) == cme);
- RUBY_ASSERT_ALWAYS(RB_TYPE_P(receiver_klass, T_CLASS));
+ RUBY_ASSERT_ALWAYS(RB_TYPE_P(receiver_klass, T_CLASS) || RB_TYPE_P(receiver_klass, T_ICLASS));
RUBY_ASSERT_ALWAYS(!rb_objspace_garbage_object_p(receiver_klass));
cme_dependency_t cme_dep = { receiver_klass, (VALUE)cme };