diff options
Diffstat (limited to 'src/backtrace.c')
| -rw-r--r-- | src/backtrace.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backtrace.c b/src/backtrace.c index 529b0b1c9..deb3f8469 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -229,10 +229,11 @@ print_backtrace(mrb_state *mrb, mrb_value backtrace) static void print_backtrace_saved(mrb_state *mrb) { - int i; + int i, ai; FILE *stream = stderr; fprintf(stream, "trace:\n"); + ai = mrb_gc_arena_save(mrb); for (i = 0; i < mrb->backtrace.n; i++) { mrb_backtrace_entry *entry; @@ -252,6 +253,7 @@ print_backtrace_saved(mrb_state *mrb) else { fprintf(stream, ":in %s", method_name); } + mrb_gc_arena_restore(mrb, ai); } fprintf(stream, "\n"); |
