[squeak-dev] The Trunk: Kernel-ul.382.mcz

commits at source.squeak.org commits at source.squeak.org
Mon Jan 25 22:14:53 UTC 2010


Levente Uzonyi uploaded a new version of Kernel to project The Trunk:
http://source.squeak.org/trunk/Kernel-ul.382.mcz

==================== Summary ====================

Name: Kernel-ul.382
Author: ul
Time: 25 January 2010, 10:40:19.44 pm
UUID: 0741847a-6bd5-c145-aa63-3c5e598d1742
Ancestors: Kernel-dtl.381

In MethodDictionary
- cosmetic changes: use #ifNotNil: if possible
- ensure that #rehashWithoutBecome doesn't send #become:, making #rehashAllInstances a lot faster
- ensure that #removeAll preserves the capacity
- deprecated #methodArray, it's the same as #array
- new comment for #new

=============== Diff against Kernel-dtl.381 ===============

Item was changed:
  ----- Method: MethodDictionary>>postCopy (in category 'copying') -----
  postCopy
  
+ 	array := array copy!
- 	array := array shallowCopy!

Item was changed:
  ----- Method: MethodDictionary>>rehashWithoutBecome (in category 'private') -----
  rehashWithoutBecome
  
+ 	| newInstance |
+ 	newInstance := self species new: self basicSize - 1. "Make sure it has the same capacity"
+ 	1 to: self basicSize do: [ :index | 
+ 		(self basicAt: index) ifNotNil: [ :key |
+ 			newInstance at: key put: (array at: index) ] ].
+ 	^newInstance!
- 	| newSelf |
- 	newSelf := self species new: self size.
- 	1 to: self basicSize do: [ :i | 
- 		| key |
- 		(key := self basicAt: i) ifNotNil: [
- 			newSelf at: key put: (array at: i) ] ].
- 	^newSelf!

Item was changed:
  ----- Method: MethodDictionary class>>new (in category 'instance creation') -----
  new
+ 	"Create a new instance with 32 slots."
- 	"change the default size to be a bit bigger to help reduce the number of #grows while filing in"
  	
  	^self new: 16!

Item was changed:
  ----- Method: MethodDictionary>>associationsDo: (in category 'enumeration') -----
  associationsDo: aBlock 
  	
  	tally = 0 ifTrue: [ ^self ].
  	1 to: self basicSize do: [ :i |
+ 		(self basicAt: i) ifNotNil: [ :key |
- 		| key |
- 		(key := self basicAt: i) ifNotNil: [
  			aBlock value: (Association key: key value: (array at: i)) ] ]!

Item was changed:
  ----- Method: MethodDictionary>>removeAll (in category 'removing') -----
  removeAll
  	"This provides a faster way than repeated become.
  	a single become is still in use to prevent system crash."
  	
  	| newSelf |
  	tally = 0 ifTrue: [^self].
+ 	newSelf := self species new: self basicSize - 1.  "This will preserve the capacity"
- 	newSelf := self species new: self size.  "This will preserve the capacity"
  	self become: newSelf!

Item was changed:
  ----- Method: MethodDictionary>>keysDo: (in category 'enumeration') -----
  keysDo: aBlock
  
  	tally = 0 ifTrue: [ ^self ].
  	1 to: self basicSize do: [ :i |
+ 		(self basicAt: i) ifNotNil: [ :key |
- 		| key |
- 		(key := self basicAt: i) ifNotNil: [
  			aBlock value: key ] ]!

Item was changed:
  ----- Method: MethodDictionary>>keysAndValuesDo: (in category 'enumeration') -----
  keysAndValuesDo: aBlock 
  	"Enumerate the receiver with all the keys and values passed to the block"
  	
  	tally = 0 ifTrue: [^ self].
  	1 to: self basicSize do: [ :i |
+ 		(self basicAt: i) ifNotNil: [ :key |
- 		| key |
- 		(key := self basicAt: i) ifNotNil: [
  			aBlock value: key value: (array at: i) ] ]!

Item was changed:
  ----- Method: MethodDictionary>>grow (in category 'private') -----
  grow
  
  	| newSelf |
  	newSelf := self species new: self basicSize.  "This will double the size"
  	1 to: self basicSize do: [ :i | 
+ 		(self basicAt: i) ifNotNil: [ :key |
- 		| key |
- 		(key := self basicAt: i) ifNotNil: [
  			newSelf at: key put: (array at: i) ] ].
  	self become: newSelf!

Item was changed:
  ----- Method: MethodDictionary>>methodArray (in category 'private') -----
  methodArray
+ 	
+ 	self deprecated: 'Use #array'.
- 
  	^array!

Item was changed:
  ----- Method: MethodDictionary>>valuesDo: (in category 'enumeration') -----
  valuesDo: aBlock 
  	
  	tally = 0 ifTrue: [ ^self ].
  	1 to: self basicSize do: [ :i | 
+ 		(array at: i) ifNotNil: [ :value |
- 		| value |
- 		(value := array at: i) ifNotNil: [
  			aBlock value: value ] ]!




More information about the Squeak-dev mailing list