summaryrefslogtreecommitdiffhomepage
path: root/src/backtrace.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2016-03-06 08:44:15 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2016-03-06 08:44:15 +0900
commitbf7719fe8da1b704c2cb72dd629dc75135fd1ad5 (patch)
tree8f50400e69f0382b630c92d8c84c47a0b9f62049 /src/backtrace.c
parent4f4fa0ade0fd80a3a6fa64bebcb5f71b0d4a8648 (diff)
parentd2a8f7e0cc153d2246d03041ce27c22c74f5c7ec (diff)
downloadmruby-bf7719fe8da1b704c2cb72dd629dc75135fd1ad5.tar.gz
mruby-bf7719fe8da1b704c2cb72dd629dc75135fd1ad5.zip
Merge pull request #3126 from jbreeden/backtrace_irep_null_check
Null check for irep & initialize loc.lineno
Diffstat (limited to 'src/backtrace.c')
-rw-r--r--src/backtrace.c9
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;