[squeak-dev] The Inbox: Kernel-cmm.831.mcz
commits at source.squeak.org
commits at source.squeak.org
Wed Jan 8 16:25:31 UTC 2014
A new version of Kernel was added to project The Inbox:
http://source.squeak.org/inbox/Kernel-cmm.831.mcz
==================== Summary ====================
Name: Kernel-cmm.831
Author: cmm
Time: 8 January 2014, 10:24:39.553 am
UUID: 7cc78def-6be9-4aec-b2f1-08d8f7e66910
Ancestors: Kernel-fbs.829
- Factor the actual removal of individual classes into primRemoveFromSystem: to make Frank happy.
- SystemChangeNotifier, no more notifications for Obsolete classes please.
- Because we're modifying a collection while enumerating it, enumerate a copy of it instead.
=============== Diff against Kernel-fbs.829 ===============
Item was added:
+ ----- Method: Class>>primRemoveFromSystem: (in category 'initialize-release') -----
+ primRemoveFromSystem: logged
+ "Forget the receiver from the Smalltalk global dictionary. Any existing
+ instances will refer to an obsolete version of the receiver."
+
+ "keep the class name and category for triggering the system change message. If we wait to long, then we get obsolete information which is not what we want."
+
+ "tell class to deactivate and unload itself-- two separate events in the module system"
+ self deactivate; unload.
+ self superclass ifNotNil:
+ ["If we have no superclass there's nothing to be remembered"
+ self superclass addObsoleteSubclass: self].
+ self environment forgetClass: self logged: logged.
+ SystemChangeNotifier uniqueInstance noMoreNotificationsFor: self.
+ self obsolete.!
Item was changed:
----- Method: Class>>removeFromSystem: (in category 'initialize-release') -----
+ removeFromSystem: logged
- removeFromSystem: logged
"Forget the receiver from the Smalltalk global dictionary. Any existing
instances will refer to an obsolete version of the receiver."
-
"keep the class name and category for triggering the system change message. If we wait to long, then we get obsolete information which is not what we want."
-
"tell class to deactivate and unload itself-- two separate events in the module system"
+ subclasses ifNotNil:
+ [ subclasses copy do:
+ [ : each | each removeFromSystem: logged ] ].
+ self primRemoveFromSystem: logged!
- self deactivate; unload.
- self superclass ifNotNil:
- ["If we have no superclass there's nothing to be remembered"
- self superclass addObsoleteSubclass: self].
- self environment forgetClass: self logged: logged.
- self obsolete.!
More information about the Squeak-dev
mailing list
|