diff --git a/mrbgems/mruby-method/src/method.c b/mrbgems/mruby-method/src/method.c index bd49c94d2..77b29374f 100644 --- a/mrbgems/mruby-method/src/method.c +++ b/mrbgems/mruby-method/src/method.c @@ -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) {