class: Metaclass
changed: #instanceVariableNames: (send #rebuildForChangedClassInstanceVariables instead of #rebuildForChangedInstanceVariables)
--- a/Metaclass.st Fri Jul 11 14:22:02 2014 +0200
+++ b/Metaclass.st Fri Jul 11 14:22:12 2014 +0200
@@ -127,7 +127,6 @@
"Created: / 1.11.1997 / 13:16:45 / cg"
! !
-
!Metaclass methodsFor:'autoload check'!
isLoaded
@@ -144,12 +143,13 @@
instanceVariableNames:aString
"changing / adding class-inst vars -
this actually creates a new metaclass and class, leaving the original
- classes around as obsolete classes. This may also be true for all subclasses,
- if class instance variables are added/removed.
- Existing instances continue to be defined by their original classes.
+ class hanging around as obsolete classes.
+ This may also be true for all subclasses, if class instance variables are added/removed in a superclass.
+ Existing instances (i.e. insts of the class) are migrated to become instances of the new class(es).
- Time will show, if this is an acceptable behavior or if we should migrate
- instances to become insts. of the new classes."
+ However, if the old class is referenced somewhere (in a collection),
+ that reference will still point to the old, now obsolete class.
+ Time will show, if that is a problem and will be fixed."
|builder|
@@ -157,7 +157,7 @@
builder := ClassBuilder new.
builder oldMetaclass:self instanceVariableNames:aString.
- builder rebuildForChangedInstanceVariables.
+ builder rebuildForChangedClassInstanceVariables.
! !
!Metaclass methodsFor:'compiler interface'!
@@ -918,7 +918,7 @@
!Metaclass class methodsFor:'documentation'!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.213 2014-03-06 17:28:18 vrany Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Metaclass.st,v 1.214 2014-07-11 12:22:12 cg Exp $'
! !