diff options
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 9 |
1 files changed, 5 insertions, 4 deletions
@@ -760,8 +760,9 @@ defined const rb_method_entry_t *me = rb_method_entry(klass, SYM2ID(obj), 0); if (me) { - if (!(me->flag & NOEX_PRIVATE)) { - if (!((me->flag & NOEX_PROTECTED) && + const rb_method_definition_t *def = me->def; + if (!(def->flag & NOEX_PRIVATE)) { + if (!((def->flag & NOEX_PROTECTED) && !rb_obj_is_kind_of(GET_SELF(), rb_class_real(klass)))) { expr_type = DEFINED_METHOD; @@ -1015,9 +1016,9 @@ defineclass vm_push_frame(th, class_iseq, VM_FRAME_MAGIC_CLASS, klass, 0, VM_ENVVAL_BLOCK_PTR(GET_BLOCK_PTR()), - vm_cref_push(th, klass, NOEX_PUBLIC, NULL), + (VALUE)vm_cref_push(th, klass, NOEX_PUBLIC, NULL), class_iseq->iseq_encoded, GET_SP(), - class_iseq->local_size, 0, class_iseq->stack_max); + class_iseq->local_size, class_iseq->stack_max); RESTORE_REGS(); NEXT_INSN(); |