summaryrefslogtreecommitdiff
path: root/class.c
diff options
context:
space:
mode:
Diffstat (limited to 'class.c')
-rw-r--r--class.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/class.c b/class.c
index 12bac24487..42c27b5f32 100644
--- a/class.c
+++ b/class.c
@@ -247,11 +247,10 @@ clone_method(VALUE klass, ID mid, const rb_method_entry_t *me)
if (me->def && me->def->type == VM_METHOD_TYPE_ISEQ) {
rb_iseq_t *iseq;
NODE *new_cref;
- newiseqval = rb_iseq_clone(me->def->body.iseq->self, klass);
+ newiseqval = rb_iseq_clone(me->def->body.iseq_body.iseq->self, klass);
GetISeqPtr(newiseqval, iseq);
- rb_vm_rewrite_cref_stack(me->def->body.iseq->cref_stack, me->klass, klass, &new_cref);
- RB_OBJ_WRITE(iseq->self, &iseq->cref_stack, new_cref);
- rb_add_method(klass, mid, VM_METHOD_TYPE_ISEQ, iseq, me->flag);
+ rb_vm_rewrite_cref_stack(me->def->body.iseq_body.cref, me->klass, klass, &new_cref);
+ rb_add_method_iseq(klass, mid, iseq, new_cref, me->flag);
RB_GC_GUARD(newiseqval);
}
else {