Null check for irep & initialize loc.lineno

This commit is contained in:
jbreeden
2016-03-05 13:45:56 -08:00
parent 4f4fa0ade0
commit e02ff850fe
+7 -2
View File
@@ -108,6 +108,8 @@ each_backtrace(mrb_state *mrb, mrb_int ciidx, mrb_code *pc0, each_backtrace_func
for (i = ciidx; i >= 0; i--) {
struct backtrace_location_raw loc;
loc.lineno = -1;
mrb_callinfo *ci;
mrb_irep *irep;
mrb_code *pc;
@@ -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;