diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-03-06 08:44:15 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2016-03-06 08:44:15 +0900 |
| commit | bf7719fe8da1b704c2cb72dd629dc75135fd1ad5 (patch) | |
| tree | 8f50400e69f0382b630c92d8c84c47a0b9f62049 | |
| parent | 4f4fa0ade0fd80a3a6fa64bebcb5f71b0d4a8648 (diff) | |
| parent | d2a8f7e0cc153d2246d03041ce27c22c74f5c7ec (diff) | |
| download | mruby-bf7719fe8da1b704c2cb72dd629dc75135fd1ad5.tar.gz mruby-bf7719fe8da1b704c2cb72dd629dc75135fd1ad5.zip | |
Merge pull request #3126 from jbreeden/backtrace_irep_null_check
Null check for irep & initialize loc.lineno
| -rw-r--r-- | src/backtrace.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/backtrace.c b/src/backtrace.c index 45a8cc2de..5bf6d3196 100644 --- a/src/backtrace.c +++ b/src/backtrace.c @@ -111,6 +111,8 @@ each_backtrace(mrb_state *mrb, mrb_int ciidx, mrb_code *pc0, each_backtrace_func mrb_callinfo *ci; mrb_irep *irep; mrb_code *pc; + + loc.lineno = -1; ci = &mrb->c->cibase[i]; @@ -128,8 +130,11 @@ each_backtrace(mrb_state *mrb, mrb_int ciidx, mrb_code *pc0, each_backtrace_func else { pc = pc0; } - loc.filename = mrb_debug_get_filename(irep, (uint32_t)(pc - irep->iseq)); - loc.lineno = mrb_debug_get_line(irep, (uint32_t)(pc - irep->iseq)); + + if (irep) { + loc.filename = mrb_debug_get_filename(irep, (uint32_t)(pc - irep->iseq)); + loc.lineno = mrb_debug_get_line(irep, (uint32_t)(pc - irep->iseq)); + } if (loc.lineno == -1) continue; |
