>From 85ca6795a63ba4406a0da9e4537d52b1a524daf9 Mon Sep 17 00:00:00 2001 From: Gwenael Casaccio Date: Mon, 27 Jun 2011 17:13:53 +0200 Subject: [PATCH 3/3] beConsistent refactoring --- kernel/Dictionary.st | 4 ---- kernel/HashedColl.st | 3 --- kernel/IdentDict.st | 4 ---- kernel/IdentitySet.st | 2 -- kernel/Set.st | 2 -- kernel/WeakObjects.st | 27 +++++++++++++++++++++++++++ 6 files changed, 27 insertions(+), 15 deletions(-) diff --git a/kernel/Dictionary.st b/kernel/Dictionary.st index 9f2f10e..e5d7914 100644 --- a/kernel/Dictionary.st +++ b/kernel/Dictionary.st @@ -568,8 +568,6 @@ certain special cases.'> | index size element | - self beConsistent. - "Sorry for the lack of readability, but I want speed... :-)" index := (anObject key hash scramble bitAnd: (size := self primSize) - 1) + 1. @@ -585,8 +583,6 @@ certain special cases.'> | index size element | - self beConsistent. - "Sorry for the lack of readability, but I want speed... :-)" index := (anObject hash scramble bitAnd: (size := self primSize) - 1) + 1. diff --git a/kernel/HashedColl.st b/kernel/HashedColl.st index 1af0fc0..345e1ec 100644 --- a/kernel/HashedColl.st +++ b/kernel/HashedColl.st @@ -196,7 +196,6 @@ give fast responses on their presence in the collection.'> "Enumerate all the non-nil members of the set" - self beConsistent. 1 to: self primSize do: [:i | (self primAt: i) notNil ifTrue: [aBlock value: (self primAt: i)]] ] @@ -334,8 +333,6 @@ give fast responses on their presence in the collection.'> | index size element | - self beConsistent. - "Sorry for the lack of readability, but I want speed... :-)" index := (anObject hash scramble bitAnd: (size := self primSize) - 1) + 1. diff --git a/kernel/IdentDict.st b/kernel/IdentDict.st index 3e7130d..0db6414 100644 --- a/kernel/IdentDict.st +++ b/kernel/IdentDict.st @@ -60,8 +60,6 @@ comparision message == to determine equivalence of indices.'> | index size element | - self beConsistent. - "Sorry for the lack of readability, but I want speed... :-)" index := (anObject identityHash scramble bitAnd: (size := self primSize) - 1) + 1. @@ -77,8 +75,6 @@ comparision message == to determine equivalence of indices.'> | index size element | - self beConsistent. - "Sorry for the lack of readability, but I want speed... :-)" index := (anObject identityHash scramble bitAnd: (size := self primSize) - 1) + 1. diff --git a/kernel/IdentitySet.st b/kernel/IdentitySet.st index ebe73f5..637e0ea 100644 --- a/kernel/IdentitySet.st +++ b/kernel/IdentitySet.st @@ -59,8 +59,6 @@ use the == operator to determine duplication of objects.'> | index size element | - self beConsistent. - "Sorry for the lack of readability, but I want speed... :-)" index := (anObject identityHash scramble bitAnd: (size := self primSize) - 1) + 1. diff --git a/kernel/Set.st b/kernel/Set.st index 56fbddf..6ed2d9d 100644 --- a/kernel/Set.st +++ b/kernel/Set.st @@ -123,8 +123,6 @@ on my instances.'> | index size element | - self beConsistent. - "Sorry for the lack of readability, but I want speed... :-)" index := (anObject hash scramble bitAnd: (size := self primSize) - 1) + 1. diff --git a/kernel/WeakObjects.st b/kernel/WeakObjects.st index 25cf7f9..52eb297 100644 --- a/kernel/WeakObjects.st +++ b/kernel/WeakObjects.st @@ -506,6 +506,33 @@ for the garbage collected values'> (key at: i) isNil ifFalse: [self whileGrowingAt: (key at: i) put: (val at: i)]] ] + + findElementIndex: anObject [ + "Tries to see where anObject can be placed as an indexed variable. + As soon as nil is found, the index of that slot is answered. + anObject also comes from an indexed variable." + + + self beConsistent. + ^ super findElementIndex: anObject + ] + + findIndex: anObject [ + "Tries to see if anObject exists as an indexed variable. As soon as nil + or anObject is found, the index of that slot is answered" + + + self beConsistent. + ^ super findIndex: anObject + ] + + do: aBlock [ + "Enumerate all the non-nil members of the set" + + + self beConsistent. + super do: aBlock + ] ] -- 1.7.4.1