--- a/CachingRegistry.st Fri Nov 18 16:24:51 2016 +0100
+++ b/CachingRegistry.st Fri Nov 18 16:25:05 2016 +0100
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"
COPYRIGHT (c) 1999 by eXept Software AG
All Rights Reserved
@@ -91,13 +93,19 @@
].
"check the whole registry..."
- keyArray validElementsDo:[:obj |
- (obj ~~ DeletedEntry and:[aBlock value:obj]) ifTrue:[
- keptReferences size >= cacheSize ifTrue:[
- keptReferences removeFirst.
+ keyArray validElementsDo:[:eachElement |
+ eachElement ~~ DeletedEntry ifTrue:[
+ |realObject|
+
+ realObject := eachElement.
+ eachElement == NilEntry ifTrue:[realObject := nil].
+ (aBlock value:realObject) ifTrue:[
+ keptReferences size >= cacheSize ifTrue:[
+ keptReferences removeFirst.
+ ].
+ keptReferences addLast:realObject.
+ ^ realObject
].
- keptReferences addLast:obj.
- ^ obj
].
].
^ exceptionValue value