Check backtrace info may not be set (esp. NoMemError); fix #3663

parent 5e1a6a2c
...@@ -138,6 +138,7 @@ mrb_print_backtrace(mrb_state *mrb) ...@@ -138,6 +138,7 @@ mrb_print_backtrace(mrb_state *mrb)
} }
backtrace = mrb_obj_iv_get(mrb, mrb->exc, mrb_intern_lit(mrb, "backtrace")); backtrace = mrb_obj_iv_get(mrb, mrb->exc, mrb_intern_lit(mrb, "backtrace"));
if (mrb_nil_p(backtrace)) return;
if (mrb_array_p(backtrace)) { if (mrb_array_p(backtrace)) {
print_backtrace(mrb, backtrace); print_backtrace(mrb, backtrace);
} }
...@@ -198,6 +199,7 @@ mrb_unpack_backtrace(mrb_state *mrb, mrb_value backtrace) ...@@ -198,6 +199,7 @@ mrb_unpack_backtrace(mrb_state *mrb, mrb_value backtrace)
struct backtrace_location *bt; struct backtrace_location *bt;
mrb_int n, i; mrb_int n, i;
if (mrb_nil_p(backtrace)) return mrb_ary_new_capa(mrb, 0);
if (mrb_array_p(backtrace)) return backtrace; if (mrb_array_p(backtrace)) return backtrace;
if (!mrb_string_p(backtrace)) { if (!mrb_string_p(backtrace)) {
broken: broken:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment