[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