From a1d32af91692c2b624e9c04fcd94aa958dbba626 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 21 Apr 2017 11:50:32 +0900 Subject: Simplify pointer calculation in `envadjust`. --- src/vm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index d60e90f72..c6eed6e56 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)) { - ptrdiff_t off = e->stack - oldbase; - - e->stack = newbase + off; + e->stack += off; } - ci->stackent = newbase + (ci->stackent - oldbase); + ci->stackent += off; ci++; } } -- cgit v1.2.3