From 5890c7d516de1d2cbd9e577065e3cf81383e09ab Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 13 Sep 2019 09:22:00 +0900 Subject: Remove `mrb_funcall` from `mrb_method_search`. --- src/class.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/class.c b/src/class.c index a551c73f6..ed45dd116 100644 --- a/src/class.c +++ b/src/class.c @@ -1333,6 +1333,8 @@ mrb_method_search_vm(mrb_state *mrb, struct RClass **cp, mrb_sym mid) return m; /* no method */ } +mrb_value mrb_mod_to_s(mrb_state *mrb, mrb_value klass); + MRB_API mrb_method_t mrb_method_search(mrb_state *mrb, struct RClass* c, mrb_sym mid) { @@ -1340,11 +1342,8 @@ mrb_method_search(mrb_state *mrb, struct RClass* c, mrb_sym mid) m = mrb_method_search_vm(mrb, &c, mid); if (MRB_METHOD_UNDEF_P(m)) { - mrb_value inspect = mrb_funcall(mrb, mrb_obj_value(c), "inspect", 0); - if (mrb_string_p(inspect) && RSTRING_LEN(inspect) > 64) { - inspect = mrb_any_to_s(mrb, mrb_obj_value(c)); - } - mrb_name_error(mrb, mid, "undefined method '%n' for class %v", mid, inspect); + mrb_value str = mrb_mod_to_s(mrb, mrb_obj_value(c)); + mrb_name_error(mrb, mid, "undefined method '%n' for class %v", mid, str); } return m; } -- cgit v1.2.3