summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-02-09 19:20:16 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-02-09 19:20:16 +0900
commit00bdaec7668b14eb4efe6c2e47b6d4e38f15e385 (patch)
tree46ef75d2905522170b2d3d61ebd287bfd13b9dca /src/vm.c
parentee0b7d150b2a3ddd463e9817b6cf1db45fed8a22 (diff)
downloadmruby-00bdaec7668b14eb4efe6c2e47b6d4e38f15e385.tar.gz
mruby-00bdaec7668b14eb4efe6c2e47b6d4e38f15e385.zip
initialize ci->stackent at the top; #1691
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index 486c21ee3..2901f89d9 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -109,6 +109,7 @@ stack_init(mrb_state *mrb)
c->ciend = c->cibase + CALLINFO_INIT_SIZE;
c->ci = c->cibase;
c->ci->target_class = mrb->object_class;
+ c->ci->stackent = c->stack;
}
static inline void
@@ -116,6 +117,7 @@ envadjust(mrb_state *mrb, mrb_value *oldbase, mrb_value *newbase)
{
mrb_callinfo *ci = mrb->c->cibase;
+ if (newbase == oldbase) return;
while (ci <= mrb->c->ci) {
struct REnv *e = ci->env;
if (e && e->cioff >= 0) {