summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-04-25 22:03:50 +0900
committerGitHub <[email protected]>2017-04-25 22:03:50 +0900
commita3d80e8e733deddddd7ed36ec07e8f29a7b928c2 (patch)
treede890ed77da3c1aa3bf68d5db6f2e0d5359e2959 /src
parent3e07a2d77c5c2979e35e4f40475c6d6758669d04 (diff)
parentb1120464e0b0cd1dc2f90e790249e78c4843bee9 (diff)
downloadmruby-a3d80e8e733deddddd7ed36ec07e8f29a7b928c2.tar.gz
mruby-a3d80e8e733deddddd7ed36ec07e8f29a7b928c2.zip
Merge pull request #3637 from dabroz/fix-32-bit
Restore 32-bit OSX builds
Diffstat (limited to 'src')
-rw-r--r--src/vm.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/vm.c b/src/vm.c
index 47ad9a9cc..8b14566c1 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -118,16 +118,16 @@ static inline void
envadjust(mrb_state *mrb, mrb_value *oldbase, mrb_value *newbase)
{
mrb_callinfo *ci = mrb->c->cibase;
- ptrdiff_t off;
if (newbase == oldbase) return;
- off = newbase - oldbase;
while (ci <= mrb->c->ci) {
struct REnv *e = ci->env;
if (e && MRB_ENV_STACK_SHARED_P(e)) {
- e->stack += off;
+ ptrdiff_t off = e->stack - oldbase;
+
+ e->stack = newbase + off;
}
- ci->stackent += off;
+ ci->stackent = newbase + (ci->stackent - oldbase);
ci++;
}
}