diff --git a/ChangeLog b/ChangeLog index c6c78846c4..211075705b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -5,6 +5,7 @@ Thu Dec 13 23:14:17 2012 Shugo Maeda See [ruby-core:50871] for details. Thu Dec 13 23:10:52 Charlie Somerville + * object.c (Init_Object): use rb_mod_init_copy for Class#initialize_copy * class.c (rb_class_init_copy): rename to class_init_copy_check, performs type checks on arguments to prevent reinitialization of initialized class diff --git a/class.c b/class.c index badcb3a5f0..43862d6d4d 100644 --- a/class.c +++ b/class.c @@ -177,7 +177,7 @@ class_init_copy_check(VALUE clone, VALUE orig) VALUE rb_mod_init_copy(VALUE clone, VALUE orig) { - if(RB_TYPE_P(clone, T_CLASS)) { + if (RB_TYPE_P(clone, T_CLASS)) { class_init_copy_check(clone, orig); } rb_obj_init_copy(clone, orig); diff --git a/object.c b/object.c index 30ca301c94..b4e67bab5b 100644 --- a/object.c +++ b/object.c @@ -3101,7 +3101,6 @@ Init_Object(void) rb_define_method(rb_cClass, "allocate", rb_obj_alloc, 0); rb_define_method(rb_cClass, "new", rb_class_new_instance, -1); rb_define_method(rb_cClass, "initialize", rb_class_initialize, -1); - rb_define_method(rb_cClass, "initialize_copy", rb_mod_init_copy, 1); /* in class.c */ rb_define_method(rb_cClass, "superclass", rb_class_superclass, 0); rb_define_alloc_func(rb_cClass, rb_class_s_alloc); rb_undef_method(rb_cClass, "extend_object");