aboutsummaryrefslogtreecommitdiffstats
path: root/vm_insnhelper.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm_insnhelper.c')
-rw-r--r--vm_insnhelper.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/vm_insnhelper.c b/vm_insnhelper.c
index 205ec59708..850ef8bd30 100644
--- a/vm_insnhelper.c
+++ b/vm_insnhelper.c
@@ -165,6 +165,14 @@ vm_push_frame(rb_thread_t *th,
th->cfp = cfp;
+ /* setup new frame */
+ cfp->pc = (VALUE *)pc;
+ cfp->iseq = (rb_iseq_t *)iseq;
+ cfp->flag = type;
+ cfp->self = self;
+ cfp->block_iseq = NULL;
+ cfp->proc = 0;
+
/* setup vm value stack */
/* initialize local variables */
@@ -180,15 +188,10 @@ vm_push_frame(rb_thread_t *th,
cfp->ep = sp;
cfp->sp = sp + 1;
+
#if VM_DEBUG_BP_CHECK
cfp->bp_check = sp + 1;
#endif
- cfp->pc = (VALUE *)pc;
- cfp->iseq = (rb_iseq_t *)iseq;
- cfp->flag = type;
- cfp->self = self;
- cfp->block_iseq = NULL;
- cfp->proc = 0;
if (VMDEBUG == 2) {
SDR();