Andreas Raab uploaded a new version of Collections to project The Trunk:
http://source.squeak.org/trunk/Collections-ar.327.mcz==================== Summary ====================
Name: Collections-ar.327
Author: ar
Time: 5 March 2010, 8:49:17.398 pm
UUID: cf3e56b1-2389-e54e-bf97-d2ea5eba849a
Ancestors: Collections-ar.326
Avoid dictionary protocol in Smalltalk.
=============== Diff against Collections-ar.326 ===============
Item was changed:
----- Method: LookupKey>>beBindingOfType:announcing: (in category 'bindings') -----
beBindingOfType: aClass announcing: aBool
"Make the receiver a global binding of the given type"
| old new |
+ (Smalltalk globals associationAt: self key) == self
- (Smalltalk associationAt: self key) == self
ifFalse:[^self error:'Not a global variable binding'].
self class == aClass ifTrue:[^self].
old := self.
new := aClass key: self key value: self value.
old become: new.
"NOTE: Now self == read-only (e.g., the new binding)"
^self recompileBindingsAnnouncing: aBool!
Item was changed:
----- Method: Association>>objectForDataStream: (in category 'objects from disk') -----
objectForDataStream: refStrm
| dp |
"I am about to be written on an object file. If I am a known global, write a proxy that will hook up with the same resource in the destination system."
+ ^ (Smalltalk globals associationAt: key ifAbsent: [nil]) == self
- ^ (Smalltalk associationAt: key ifAbsent: [nil]) == self
ifTrue: [dp := DiskProxy global: #Smalltalk selector: #associationOrUndeclaredAt:
args: (Array with: key).
refStrm replace: self with: dp.
dp]
ifFalse: [self]!