[前][次][番号順一覧][スレッド一覧]

ruby-changes:14478

From: marcandre <ko1@a...>
Date: Wed, 13 Jan 2010 11:58:03 +0900 (JST)
Subject: [ruby-changes:14478] Ruby:r26314 (trunk): * object.c (rb_class_initialize): Make sure BasicObject doesn't get initialized twice

marcandre	2010-01-13 11:57:48 +0900 (Wed, 13 Jan 2010)

  New Revision: 26314

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=26314

  Log:
    * object.c (rb_class_initialize): Make sure BasicObject doesn't get initialized twice [ruby-core:27577]
    
    * class.c (rb_class_init_copy): ditto

  Modified files:
    trunk/ChangeLog
    trunk/class.c
    trunk/object.c

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 26313)
+++ ChangeLog	(revision 26314)
@@ -1,3 +1,10 @@
+Wed Jan 13 11:57:38 2010  Marc-Andre Lafortune  <ruby-core@m...>
+
+	* 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@r...>
 
 	* configure.in: check for if struct timezone is defined.
Index: object.c
===================================================================
--- object.c	(revision 26313)
+++ object.c	(revision 26314)
@@ -1427,7 +1427,7 @@
 {
     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) {
Index: class.c
===================================================================
--- class.c	(revision 26313)
+++ class.c	(revision 26314)
@@ -180,7 +180,7 @@
 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)) {

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]