diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-07-25 14:54:17 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2013-07-25 14:54:17 +0900 |
| commit | 63e5a3cfb10e238eaab2a77bcc83acd0d41e60fa (patch) | |
| tree | cd38afab99c11dbfc2114306c6b779c114a1ac39 /src/vm.c | |
| parent | 8a298605e6667bfc15a1bef49b481f35829c0717 (diff) | |
| download | mruby-63e5a3cfb10e238eaab2a77bcc83acd0d41e60fa.tar.gz mruby-63e5a3cfb10e238eaab2a77bcc83acd0d41e60fa.zip | |
refactor out longjmp() to a function
Diffstat (limited to 'src/vm.c')
| -rw-r--r-- | src/vm.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -1,4 +1,4 @@ -/* + /* ** vm.c - virtual machine for mruby ** ** See Copyright Notice in mruby.h @@ -1261,7 +1261,7 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) mrb->c->stack = mrb->c->stbase + ci[1].stackidx; if (ci[1].acc < 0 && prev_jmp) { mrb->jmp = prev_jmp; - longjmp(*(jmp_buf*)mrb->jmp, 1); + mrb_longjmp(mrb); } while (eidx > ci->eidx) { ecall(mrb, --eidx); @@ -2127,3 +2127,9 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) } END_DISPATCH; } + +void +mrb_longjmp(mrb_state *mrb) +{ + longjmp(*(jmp_buf*)mrb->jmp, 1); +} |
