diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-01-08 00:49:23 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-01-08 00:49:23 +0900 |
| commit | cff4ac6bb7fac7cf72b58a0081d7dacd9c1f492c (patch) | |
| tree | 8ca7f82f7f0276b94adbe4565b150f9ea54d79cb /src/backtrace.c | |
| parent | 1cdf2838996a3be41c2ba976d16cc1de286b5e50 (diff) | |
| download | mruby-cff4ac6bb7fac7cf72b58a0081d7dacd9c1f492c.tar.gz mruby-cff4ac6bb7fac7cf72b58a0081d7dacd9c1f492c.zip | |
skip "trace:" header if no backtrace line exists
Diffstat (limited to 'src/backtrace.c')
| -rw-r--r-- | src/backtrace.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/backtrace.c b/src/backtrace.c index 8567f4f5a..76b5961b9 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -62,9 +62,8 @@ mrb_output_backtrace(mrb_state *mrb, struct RObject *exc, output_stream_func fun mrb_callinfo *ci; mrb_int ciidx; const char *filename, *method, *sep; - int i, lineno; + int i, lineno, tracehead = 1; - func(mrb, stream, 1, "trace:\n"); ciidx = mrb_fixnum(mrb_obj_iv_get(mrb, exc, mrb_intern_lit(mrb, "ciidx"))); if (ciidx >= mrb->c->ciend - mrb->c->cibase) ciidx = 10; /* ciidx is broken... */ @@ -103,6 +102,10 @@ mrb_output_backtrace(mrb_state *mrb, struct RObject *exc, output_stream_func fun filename = "(unknown)"; } + if (tracehead) { + func(mrb, stream, 1, "trace:\n"); + tracehead = 0; + } method = mrb_sym2name(mrb, ci->mid); if (method) { const char *cn = mrb_class_name(mrb, ci->proc->target_class); |
