diff --git a/vm_exec.c b/vm_exec.c index ce47ab2cc3..0adaa7b721 100644 --- a/vm_exec.c +++ b/vm_exec.c @@ -143,7 +143,7 @@ static VALUE vm_exec_core(rb_execution_context_t *ec, VALUE initial) { register rb_control_frame_t *reg_cfp = ec->cfp; - rb_thread_t *th = rb_ec_thread_ptr(ec); + rb_thread_t *th; while (1) { reg_cfp = ((rb_insn_func_t) (*GET_PC()))(ec, reg_cfp); @@ -153,9 +153,9 @@ vm_exec_core(rb_execution_context_t *ec, VALUE initial) } } - if (rb_ec_thread_ptr(ec)->retval != Qundef) { + if ((th = rb_ec_thread_ptr(ec))->retval != Qundef) { VALUE ret = th->retval; - rb_ec_thread_ptr(ec)->retval = Qundef; + th->retval = Qundef; return ret; } else {