ClassBuilder.st
branchjv
changeset 17751 b2273fa8d59f
parent 17742 3fef0ed4c2d5
child 17761 b0e5971141bc
--- a/ClassBuilder.st	Sat Feb 13 18:48:33 2010 +0000
+++ b/ClassBuilder.st	Sat Feb 13 23:34:44 2010 +0000
@@ -1121,7 +1121,10 @@
         ].
     ].
 
-    Class flushSubclassInfo.
+    Class flushSubclassInfoFor:oldClass superclass.
+    Class flushSubclassInfoFor:newClass superclass.
+    Class flushSubclassInfoFor:oldClass.
+    Class flushSubclassInfoFor:newClass.
 
     "notify change of class"
     changed ifTrue:[
@@ -1259,7 +1262,8 @@
     (instVarChange or:[classVarChange]) ifTrue:[
         self changeReferencesFrom:oldClass to:newClass.
     ].
-    Class flushSubclassInfo.
+    oldClass subclasses do:[:cls | Class flushSubclassInfoFor:cls].
+    Class flushSubclassInfoFor:oldClass.
     ^ newClass
 
     "Created: / 26-05-1996 / 11:55:26 / cg"
@@ -1625,10 +1629,11 @@
      create a new class tree, based on the new version
     "
     Smalltalk flushCachedClasses.
-    Class flushSubclassInfo.
+    Class flushSubclassInfoFor:self.
     allSubclasses do:[:aSubclass |
         |oldSuper|
 
+        Class flushSubclassInfoFor:aSubclass.
         oldSuper := aSubclass superclass.
         oldSubMeta := aSubclass class.
 
@@ -2209,13 +2214,14 @@
 !ClassBuilder class methodsFor:'documentation'!
 
 version
-    ^ '$Id: ClassBuilder.st 10489 2009-12-27 20:16:54Z vranyj1 $'
+    ^ '$Id: ClassBuilder.st 10501 2010-02-13 23:34:44Z vranyj1 $'
 !
 
 version_CVS
-    ^ '§Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.88 2009/12/11 09:27:16 cg Exp §'
+    ^ '§Header: /cvs/stx/stx/libbasic/ClassBuilder.st,v 1.90 2010/02/05 12:59:07 cg Exp §'
 ! !
 
 
 
 
+