WeakDependencyDictionary.st
changeset 2508 32924c15a4cd
parent 2316 6b24c092456a
child 2512 a57c66f472b3
--- a/WeakDependencyDictionary.st	Thu Mar 27 14:28:57 1997 +0100
+++ b/WeakDependencyDictionary.st	Thu Mar 27 15:57:46 1997 +0100
@@ -69,7 +69,7 @@
     "special entry for dependency management:
      remove any empty (due to finalization) value WeakArray elements."
 
-    |index t wasBlocked deps o key b originalKeyArray|
+    |index t wasBlocked deps o key originalKeyArray deletedEntry|
 
     "/ careful: this is sent by the finalizer at low prio.
     "/ be prepared for the receiver to change while we walk over
@@ -77,10 +77,9 @@
 
 "/ 'removeEmptyDependencyValues ...' printCR.
 
-    b := [:el | el notNil and:[el ~~ 0]].
-
     originalKeyArray := keyArray.
 
+    deletedEntry := DeletedEntry.
     index := 1.
     [index <= keyArray size] whileTrue:[
         "/ get the size again - it could have changed
@@ -97,23 +96,23 @@
             key := keyArray basicAt:index.
             key == 0 ifTrue:[
                 "/ that one is gone
-                key := DeletedEntry.
+                key := deletedEntry.
                 keyArray basicAt:index put:key.
                 valueArray basicAt:index put:nil.
                 tally := tally - 1.
             ].
 
-            (key notNil and:[key ~~ DeletedEntry]) ifTrue:[
+            (key notNil and:[key ~~ deletedEntry]) ifTrue:[
                 deps := valueArray basicAt:index.
                 deps notNil ifTrue:[
                     "/ is it an empty WeakArray ?
 
                     (deps isMemberOf:WeakArray) ifTrue:[
-                        t := deps findFirst:b.
+                        t := deps findFirst:[:el | el notNil and:[el ~~ 0]].
                         t == 0 ifTrue:[
                             "/ yes - nil it
                             valueArray basicAt:index put:nil.
-                            keyArray basicAt:index put:DeletedEntry.
+                            keyArray basicAt:index put:deletedEntry.
                             tally := tally - 1.
                         ]
                     ] ifFalse:[
@@ -123,7 +122,7 @@
                             (t := deps size) == 0 ifTrue:[
                                 "/ yes - nil it
                                 valueArray basicAt:index put:nil.
-                                keyArray basicAt:index put:DeletedEntry.
+                                keyArray basicAt:index put:deletedEntry.
                                 tally := tally - 1.
 "/                            ] ifFalse:[
 "/                                t == 1 ifTrue:[
@@ -135,7 +134,7 @@
 "/                                        valueArray basicAt:index put:(WeakArray with:o)
 "/                                    ] ifFalse:[
 "/                                        key notNil ifTrue:[
-"/                                            keyArray basicAt:index put:DeletedEntry.
+"/                                            keyArray basicAt:index put:deletedEntry.
 "/                                            tally := tally - 1.
 "/                                        ]
 "/                                    ]
@@ -145,7 +144,7 @@
                     ]
                 ] ifFalse:[
                     'oops: nil value for key' print. key printCR.
-                    keyArray basicAt:index put:DeletedEntry.
+                    keyArray basicAt:index put:deletedEntry.
                     tally := tally - 1.
                 ]
             ]
@@ -167,5 +166,5 @@
 !WeakDependencyDictionary class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/WeakDependencyDictionary.st,v 1.8 1997-01-29 21:11:16 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/WeakDependencyDictionary.st,v 1.9 1997-03-27 14:57:46 cg Exp $'
 ! !