GitHub

@@ -781,7 +781,8 @@ mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_method_

781781

}

782782783783

int flags = MT_KEY_FLG(m.flags);

784-

if ((flags & 0x3) == 0) flags |= MRB_VISIBILITY(c);

784+

if (mid == MRB_SYM(initialize)) flags = (flags & ~0x3) | MT_PRIVATE;

785+

else if ((flags & 0x3) == 0) flags |= MRB_VISIBILITY(c);

785786

mt_put(mrb, h, mid, flags, ptr);

786787

mc_clear_by_id(mrb, mid);

787788

}

@@ -3028,7 +3029,7 @@ mrb_init_class(mrb_state *mrb)

30283029

mrb_class_name_class(mrb, NULL, cls, MRB_SYM(Class)); /* 15.2.3 */

3029303030303031

MRB_SET_INSTANCE_TT(cls, MRB_TT_CLASS);

3031-

mrb_define_private_method_id(mrb, bob, MRB_SYM(initialize), mrb_do_nothing, MRB_ARGS_NONE());

3032+

mrb_define_method_id(mrb, bob, MRB_SYM(initialize), mrb_do_nothing, MRB_ARGS_NONE());

30323033

mrb_define_method_id(mrb, bob, MRB_OPSYM(not), mrb_bob_not, MRB_ARGS_NONE());

30333034

mrb_define_method_id(mrb, bob, MRB_OPSYM(eq), mrb_obj_equal_m, MRB_ARGS_REQ(1)); /* 15.3.1.3.1 */

30343035

mrb_define_method_id(mrb, bob, MRB_SYM(__id__), mrb_obj_id_m, MRB_ARGS_NONE()); /* 15.3.1.3.4 */

@@ -3041,7 +3042,7 @@ mrb_init_class(mrb_state *mrb)

30413042

mrb_define_class_method_id(mrb, cls, MRB_SYM(new), mrb_class_new_class, MRB_ARGS_OPT(1)|MRB_ARGS_BLOCK());

30423043

mrb_define_method_id(mrb, cls, MRB_SYM(allocate), mrb_instance_alloc, MRB_ARGS_NONE());

30433044

mrb_define_method_id(mrb, cls, MRB_SYM(superclass), mrb_class_superclass, MRB_ARGS_NONE()); /* 15.2.3.3.4 */

3044-

mrb_define_private_method_id(mrb, cls, MRB_SYM(initialize), mrb_class_initialize, MRB_ARGS_OPT(1)); /* 15.2.3.3.1 */

3045+

mrb_define_method_id(mrb, cls, MRB_SYM(initialize), mrb_class_initialize, MRB_ARGS_OPT(1)); /* 15.2.3.3.1 */

30453046

mrb_define_private_method_id(mrb, cls, MRB_SYM(inherited), mrb_do_nothing, MRB_ARGS_REQ(1));

3046304730473048

init_class_new(mrb, cls);

@@ -3055,7 +3056,7 @@ mrb_init_class(mrb_state *mrb)

30553056

mrb_define_private_method_id(mrb, mod, MRB_SYM(prepend_features), mrb_mod_prepend_features, MRB_ARGS_REQ(1));

30563057

mrb_define_method_id(mrb, mod, MRB_SYM(class_eval), mrb_mod_module_eval, MRB_ARGS_ANY()); /* 15.2.2.4.15 */

30573058

mrb_define_private_method_id(mrb, mod, MRB_SYM(included), mrb_do_nothing, MRB_ARGS_REQ(1)); /* 15.2.2.4.29 */

3058-

mrb_define_private_method_id(mrb, mod, MRB_SYM(initialize), mrb_mod_initialize, MRB_ARGS_NONE()); /* 15.2.2.4.31 */

3059+

mrb_define_method_id(mrb, mod, MRB_SYM(initialize), mrb_mod_initialize, MRB_ARGS_NONE()); /* 15.2.2.4.31 */

30593060

mrb_define_method_id(mrb, mod, MRB_SYM(module_eval), mrb_mod_module_eval, MRB_ARGS_ANY()); /* 15.2.2.4.35 */

30603061

mrb_define_private_method_id(mrb, mod, MRB_SYM(module_function), mrb_mod_module_function, MRB_ARGS_ANY());

30613062

mrb_define_private_method_id(mrb, mod, MRB_SYM(private), mrb_mod_private, MRB_ARGS_ANY()); /* 15.2.2.4.36 */

Read the original on github.com ↗