Fix calling extended callback

The callback of extending module should be called, not of a singleton
class of an extended object.
This commit is contained in:
Paweł Świątkowski
2025-05-27 22:23:35 +02:00
parent bec5dbc4e9
commit bdcd496bc2
2 changed files with 28 additions and 2 deletions
+2 -2
View File
@@ -1681,8 +1681,8 @@ mrb_obj_extend(mrb_state *mrb, mrb_value obj)
mrb_value mod = argv[argc];
mrb_check_type(mrb, mod, MRB_TT_MODULE);
mrb_include_module(mrb, mrb_class_ptr(cc), mrb_class_ptr(mod));
if (!mrb_func_basic_p(mrb, cc, extended, mrb_do_nothing)) {
mrb_funcall_argv(mrb, cc, extended, 1, &mod);
if (!mrb_func_basic_p(mrb, mod, extended, mrb_do_nothing)) {
mrb_funcall_argv(mrb, mod, extended, 1, &obj);
}
}
return obj;