diff options
author | Takashi Kokubun <[email protected]> | 2023-12-22 22:17:58 -0800 |
---|---|---|
committer | Takashi Kokubun <[email protected]> | 2023-12-22 22:18:14 -0800 |
commit | da02d08f2793c1c5d2ce084d6ceb6fa58ed641f2 (patch) | |
tree | a2430bb9638d29f6f9fdae395837bc6bd5b5ef83 /rjit.c | |
parent | ef065102653378956f579985d10d3d4816dc87cf (diff) |
RJIT: Rewind $! after compilation
Diffstat (limited to 'rjit.c')
-rw-r--r-- | rjit.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -172,7 +172,7 @@ extern VALUE rb_gc_enable(void); extern VALUE rb_gc_disable(void); extern uint64_t rb_vm_insns_count; -// Disable GC, TracePoint, JIT, and stats +// Disable GC, TracePoint, JIT, stats, and $! #define WITH_RJIT_ISOLATED_USING_PC(using_pc, stmt) do { \ VALUE was_disabled = rb_gc_disable(); \ \ @@ -192,8 +192,12 @@ extern uint64_t rb_vm_insns_count; rjit_stats_p = false; \ uint64_t insns_count = rb_vm_insns_count; \ \ + VALUE err = rb_errinfo(); \ + \ stmt; \ \ + rb_set_errinfo(err); \ + \ rb_vm_insns_count = insns_count; \ rjit_stats_p = rb_rjit_opts.stats; \ \ |