[squeak-dev] The Inbox: Collections-cmm.673.mcz
commits at source.squeak.org
commits at source.squeak.org
Thu Dec 31 22:05:31 UTC 2015
Chris Muller uploaded a new version of Collections to project The Inbox:
http://source.squeak.org/inbox/Collections-cmm.673.mcz
==================== Summary ====================
Name: Collections-cmm.673
Author: cmm
Time: 31 December 2015, 4:05:21.536 pm
UUID: f9f9498e-b548-443b-87fe-af21ba6e8f52
Ancestors: Collections-eem.672
Do not let FinalizationDependents become a strongly-referencing Array, and let it grow exponentially instead of linearly, because that is the best general growth strategy when one doesn't know how many will need to be created.
=============== Diff against Collections-eem.672 ===============
Item was changed:
----- Method: WeakArray class>>addWeakDependent: (in category 'accessing') -----
addWeakDependent: anObject
FinalizationLock
critical: [
| emptySlotIndex |
emptySlotIndex := FinalizationDependents
identityIndexOf: nil
ifAbsent: [
| newIndex |
newIndex := FinalizationDependents size + 1.
+ FinalizationDependents := (FinalizationDependents grownBy: FinalizationDependents size) as: WeakArray.
- "Grow linearly"
- FinalizationDependents := FinalizationDependents grownBy: 10.
newIndex ].
FinalizationDependents at: emptySlotIndex put: anObject ]
ifError: [ :msg :rcvr | rcvr error: msg ]!
More information about the Squeak-dev
mailing list
|