diff options
author | John Hawthorn <[email protected]> | 2021-08-30 20:58:53 -0700 |
---|---|---|
committer | Alan Wu <[email protected]> | 2021-10-20 18:19:39 -0400 |
commit | 3ecc6befcdfb14c6bfd345bd6bebd2e84dc32c27 (patch) | |
tree | acb3ff0fd7944c055f90a101cb2aa970ea564051 /yjit_iface.c | |
parent | fbde1d9bee1da0a27ead6ce3ae7bc4411b10198d (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.c | 2 |
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 }; |