diff --git a/insns.def b/insns.def index eb5b4dec9e..679927b4e9 100644 --- a/insns.def +++ b/insns.def @@ -1250,7 +1250,7 @@ once } else if (is->once.running_thread == th) { /* recursive once */ - val = vm_once_exec(iseq); + val = vm_once_exec((VALUE)iseq); } else { /* waiting for finish */ diff --git a/vm_insnhelper.c b/vm_insnhelper.c index 2a6ad6deeb..64e58f0842 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -2397,9 +2397,9 @@ vm_make_proc_with_iseq(rb_iseq_t *blockiseq) } static VALUE -vm_once_exec(rb_iseq_t *iseq) +vm_once_exec(VALUE iseq) { - VALUE proc = vm_make_proc_with_iseq(iseq); + VALUE proc = vm_make_proc_with_iseq((rb_iseq_t *)iseq); return rb_proc_call_with_block(proc, 0, 0, Qnil); }