diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-03-04 18:52:51 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-03-04 18:52:51 +0900 |
| commit | c789acbc3645cbdeb500c28af4ca295f1a61f2d1 (patch) | |
| tree | 38f8879d56635dbbde3836f8defd8ea9ab1a5ed6 /src/backtrace.c | |
| parent | ffdf7be7235717fb1cd30e54c24c5383f705f110 (diff) | |
| download | mruby-c789acbc3645cbdeb500c28af4ca295f1a61f2d1.tar.gz mruby-c789acbc3645cbdeb500c28af4ca295f1a61f2d1.zip | |
Save/restore arena index in the loop.
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"); |
