diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-21 11:50:32 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-04-21 22:29:28 +0900 |
| commit | a1d32af91692c2b624e9c04fcd94aa958dbba626 (patch) | |
| tree | 8872e97d48078ced42984dfe8ac772dbfaac9919 /src | |
| parent | ad3b61f47bac6def7365dcf0b92e4ede7de8f085 (diff) | |
| download | mruby-a1d32af91692c2b624e9c04fcd94aa958dbba626.tar.gz mruby-a1d32af91692c2b624e9c04fcd94aa958dbba626.zip | |
Simplify pointer calculation in `envadjust`.
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -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++; } } |
