[squeak-dev] The Trunk: Environments-cwp.48.mcz
commits at source.squeak.org
commits at source.squeak.org
Sat Mar 29 17:42:26 UTC 2014
Colin Putney uploaded a new version of Environments to project The Trunk:
http://source.squeak.org/trunk/Environments-cwp.48.mcz
==================== Summary ====================
Name: Environments-cwp.48
Author: cwp
Time: 29 March 2014, 12:42:00.257 pm
UUID: 59039bca-7da2-4495-a5d8-8e962783c828
Ancestors: Environments-cwp.47
Clean up observers when destroying an environment.
=============== Diff against Environments-cwp.47 ===============
Item was changed:
Object subclass: #BindingPolicy
+ instanceVariableNames: 'policy environment addSelector removeSelector'
- instanceVariableNames: 'namespace policy next environment addSelector removeSelector'
classVariableNames: ''
poolDictionaries: ''
category: 'Environments-Policies'!
Item was added:
+ ----- Method: BindingPolicy>>environment (in category 'as yet unclassified') -----
+ environment
+ ^ environment!
Item was added:
+ ----- Method: BindingPolicy>>removeObserver: (in category 'initialize-release') -----
+ removeObserver: anEnvironment
+ environment removeObserver: anEnvironment !
Item was changed:
+ ----- Method: Environment>>addObserver: (in category 'observing') -----
- ----- Method: Environment>>addObserver: (in category 'accessing') -----
addObserver: anObject
observers add: anObject!
Item was added:
+ ----- Method: Environment>>declarations (in category 'declaring') -----
+ declarations
+ ^ Array streamContents:
+ [:out | declarations associationsDo:
+ [:ea | out nextPut: ea]]!
Item was changed:
----- Method: Environment>>destroy (in category 'initialize-release') -----
destroy
+
+ self allClasses do: [:ea | ea removeFromSystem].
+ policies do: [:ea | ea removeObserver: self].
+ observers do: [:ea | ea stopObserving: self].!
- self allClasses do: [:ea | ea removeFromSystem]!
Item was changed:
+ ----- Method: Environment>>isUndeclared: (in category 'declaring') -----
- ----- Method: Environment>>isUndeclared: (in category 'undeclared') -----
isUndeclared: aSymbol
^ undeclared includesKey: aSymbol!
Item was changed:
+ ----- Method: Environment>>purgeUndeclared (in category 'declaring') -----
- ----- Method: Environment>>purgeUndeclared (in category 'undeclared') -----
purgeUndeclared
undeclared removeUnreferencedKeys!
Item was changed:
+ ----- Method: Environment>>removeObserver: (in category 'observing') -----
- ----- Method: Environment>>removeObserver: (in category 'accessing') -----
removeObserver: anObject
+ observers remove: anObject ifAbsent: []!
- observers remove: anObject!
Item was added:
+ ----- Method: Environment>>stopObserving: (in category 'observing') -----
+ stopObserving: anEnvironment
+ policies := policies reject: [:ea | ea environment == anEnvironment].!
Item was changed:
+ ----- Method: Environment>>undeclare: (in category 'declaring') -----
- ----- Method: Environment>>undeclare: (in category 'undeclared') -----
undeclare: aSymbol
^ (undeclared bindingOf: aSymbol) ifNil:
[undeclared add: aSymbol => nil]!
Item was changed:
+ ----- Method: Environment>>undeclare:from: (in category 'declaring') -----
- ----- Method: Environment>>undeclare:from: (in category 'undeclared') -----
undeclare: aSymbol from: aNamespace
| binding |
binding := self undeclare: aSymbol.
(aNamespace bindingOf: aSymbol) ifNotNil:
[:old |
aNamespace removeKey: aSymbol.
old becomeForward: binding].
^ binding!
More information about the Squeak-dev
mailing list
|