mruby-method (method_to_s): _proc may be nil; add check

This commit is contained in:
Yukihiro "Matz" Matsumoto
2023-11-28 21:59:21 +09:00
parent e8da16cdf5
commit 9eae7df26e
+11 -9
View File
@@ -410,16 +410,18 @@ method_to_s(mrb_state *mrb, mrb_value self)
mrb_str_concat(mrb, str, name);
}
finish:;
const struct RProc *p = mrb_proc_ptr(proc);
if (MRB_PROC_ALIAS_P(p)) {
mrb_sym mid;
while (MRB_PROC_ALIAS_P(p)) {
mid = p->body.mid;
p = p->upper;
if (!mrb_nil_p(proc)) {
const struct RProc *p = mrb_proc_ptr(proc);
if (MRB_PROC_ALIAS_P(p)) {
mrb_sym mid;
while (MRB_PROC_ALIAS_P(p)) {
mid = p->body.mid;
p = p->upper;
}
mrb_str_cat_lit(mrb, str, "(");
mrb_str_concat(mrb, str, mrb_symbol_value(mid));
mrb_str_cat_lit(mrb, str, ")");
}
mrb_str_cat_lit(mrb, str, "(");
mrb_str_concat(mrb, str, mrb_symbol_value(mid));
mrb_str_cat_lit(mrb, str, ")#");
}
mrb_value loc = method_source_location(mrb, self);
if (mrb_array_p(loc) && RARRAY_LEN(loc) == 2) {