diff options
author | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-13 02:57:48 +0000 |
---|---|---|
committer | marcandre <marcandre@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2010-01-13 02:57:48 +0000 |
commit | fb2941a4ec60cd396982f15e990696f733703e37 (patch) | |
tree | ce21d5302f1a45fc34148262c20068c9ff063a7f | |
parent | 187a32495b0b2bf5c850ee0a6b70bf5e37070227 (diff) | |
download | ruby-fb2941a4ec60cd396982f15e990696f733703e37.tar.gz |
* object.c (rb_class_initialize): Make sure BasicObject doesn't get initialized twice [ruby-core:27577]
* class.c (rb_class_init_copy): ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26314 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | class.c | 2 | ||||
-rw-r--r-- | object.c | 2 |
3 files changed, 9 insertions, 2 deletions
@@ -1,3 +1,10 @@ +Wed Jan 13 11:57:38 2010 Marc-Andre Lafortune <ruby-core@marc-andre.ca> + + * object.c (rb_class_initialize): Make sure BasicObject doesn't get + initialized twice [ruby-core:27577] + + * class.c (rb_class_init_copy): ditto + Wed Jan 13 06:54:44 2010 Nobuyoshi Nakada <nobu@ruby-lang.org> * configure.in: check for if struct timezone is defined. @@ -180,7 +180,7 @@ rb_mod_init_copy(VALUE clone, VALUE orig) VALUE rb_class_init_copy(VALUE clone, VALUE orig) { - if (RCLASS_SUPER(clone) != 0) { + if (RCLASS_SUPER(clone) != 0 || clone == rb_cBasicObject) { rb_raise(rb_eTypeError, "already initialized class"); } if (FL_TEST(orig, FL_SINGLETON)) { @@ -1427,7 +1427,7 @@ rb_class_initialize(int argc, VALUE *argv, VALUE klass) { VALUE super; - if (RCLASS_SUPER(klass) != 0) { + if (RCLASS_SUPER(klass) != 0 || klass == rb_cBasicObject) { rb_raise(rb_eTypeError, "already initialized class"); } if (argc == 0) { |