diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-05-25 11:11:40 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-05-25 11:11:40 +0900 |
| commit | ff46957ef072832a3445c39c73b4a8eadceb5ce3 (patch) | |
| tree | aed81977f615cd1f5eb841668d672cbdd3636e8f | |
| parent | 3ef97e3dd9fdd31ecca30d04d0fc3783ca8dab58 (diff) | |
| download | mruby-ff46957ef072832a3445c39c73b4a8eadceb5ce3.tar.gz mruby-ff46957ef072832a3445c39c73b4a8eadceb5ce3.zip | |
Avoid using `mrb_raise()` in `mrb_vm_exec()`; ref #3660
| -rw-r--r-- | src/vm.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -1148,8 +1148,14 @@ RETRY_TRY_BLOCK: case MRB_TT_MODULE: break; default: - mrb_raise(mrb, E_TYPE_ERROR, "class or module required for rescue clause"); - break; + { + mrb_value exc; + + exc = mrb_exc_new_str_lit(mrb, E_TYPE_ERROR, + "class or module required for rescue clause"); + mrb_exc_set(mrb, exc); + goto L_RAISE; + } } ec = mrb_class_ptr(e); regs[b] = mrb_bool_value(mrb_obj_is_kind_of(mrb, exc, ec)); |
