From 515b2fd144dde3c355fa49c32f1591f4435944c8 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 16 Feb 2023 09:38:26 +0900 Subject: [PATCH] class.c (mrb_method_added): skip mrb_funcall_id() is possible When `method_added` is not redefined, we don't need to call it since its default implementation does nothing. --- src/class.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/class.c b/src/class.c index b576d694e..3c9346668 100644 --- a/src/class.c +++ b/src/class.c @@ -2550,7 +2550,9 @@ mrb_method_added(mrb_state *mrb, struct RClass *c, mrb_sym mid) else { added = MRB_SYM(method_added); } - mrb_funcall_id(mrb, recv, added, 1, mrb_symbol_value(mid)); + if (!mrb_func_basic_p(mrb, recv, added, mrb_do_nothing)) { + mrb_funcall_id(mrb, recv, added, 1, mrb_symbol_value(mid)); + } } mrb_value