Slide 25
Slide 25 text
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 3841801..a46028c 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -152,20 +172,21 @@
static inline rb_control_frame_t *
vm_push_frame(rb_thread_t *th,
const rb_iseq_t *iseq,
VALUE type,
VALUE self,
VALUE specval,
VALUE cref_or_me,
const VALUE *pc,
VALUE *sp,
int local_size,
int stack_max)
{
rb_control_frame_t *const cfp = th->cfp - 1;
int i;
vm_check_frame(type, specval, cref_or_me);
VM_ASSERT(local_size >= 1);
+ iseq_deoptimize_if_needed(iseq, ruby_vm_global_timestamp);
/* check stack overflow */
CHECK_VM_STACK_OVERFLOW0(cfp, sp, local_size + stack_max);