--- a/Class.st Wed Jun 14 18:41:08 2006 +0200
+++ b/Class.st Wed Jun 14 20:29:00 2006 +0200
@@ -1314,7 +1314,7 @@
longer needed - for example, after some delay when the last instance
is gone ...)"
- |nm newClass|
+ |nm newClass privateClasses|
self wasAutoloaded ifFalse:[
"
@@ -1328,24 +1328,29 @@
].
"/ cannot unload, if non-autoloaded subclasses exist ...
- self allSubclassesDo:[:aClass |
- aClass wasAutoloaded ifFalse:[
- aClass isPrivate ifFalse:[
- self warn:('cannot unload ' , self name , ' (' , aClass name , ' requires it)').
+ self allSubclassesDo:[:eachSubclass |
+ eachSubclass wasAutoloaded ifFalse:[
+ eachSubclass isPrivate ifFalse:[
+ self warn:('cannot unload ' , self name , ' (' , eachSubclass name , ' requires it)').
^ false.
]
]
].
- self allSubclassesDo:[:aClass |
- aClass wasAutoloaded ifTrue:[
- aClass unload
+ self allSubclassesDo:[:eachSubclass |
+ eachSubclass wasAutoloaded ifTrue:[
+ eachSubclass unload
] ifFalse:[
- aClass removeFromSystem.
+ eachSubclass removeFromSystem.
]
].
- self privateClasses do:[:aClass |
- aClass removeFromSystem.
+ privateClasses := self privateClasses.
+ privateClasses notEmpty ifTrue:[
+ self withoutUpdatingChangesDo:[
+ privateClasses do:[:eachPrivateClass |
+ eachPrivateClass removeFromSystem.
+ ].
+ ].
].
Transcript showCR:'unloading ' , name , ' ...'.
@@ -4935,5 +4940,5 @@
!Class class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.490 2006-02-21 16:52:07 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/Class.st,v 1.491 2006-06-14 18:29:00 stefan Exp $'
! !