Skip to content

Commit

Permalink
Improve algorithm of numberOfCategoryOfElement: to improve the perfor…
Browse files Browse the repository at this point in the history
…mances
  • Loading branch information
VincentBlondeau committed Dec 2, 2019
1 parent c34dfc1 commit 612b80d
Showing 1 changed file with 7 additions and 12 deletions.
19 changes: 7 additions & 12 deletions src/Kernel/Categorizer.class.st
Expand Up @@ -398,21 +398,16 @@ Categorizer >> listAtProtocolNamed: categoryName [
]

{ #category : #private }
Categorizer >> numberOfCategoryOfElement: element [
Categorizer >> numberOfCategoryOfElement: element [
"Answer the index of the category with which the argument, element, is
associated."

| categoryIndex elementIndex |
categoryIndex := 1.
elementIndex := 0.
[(elementIndex := elementIndex + 1) <= elementArray size]
whileTrue:
["point to correct category"
[elementIndex > (categoryStops at: categoryIndex)]
whileTrue: [categoryIndex := categoryIndex + 1].
"see if this is element"
element = (elementArray at: elementIndex) ifTrue: [^categoryIndex]].
^0
| indexOfElementInElementArray |
indexOfElementInElementArray := elementArray
identityIndexOf: element asSymbol
ifAbsent: [ ^ 0 ].
^ categoryStops findFirst: [ :stopIndex |
stopIndex >= indexOfElementInElementArray ]
]

{ #category : #'queries - protocol' }
Expand Down

0 comments on commit 612b80d

Please sign in to comment.