groovy-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sun...@apache.org
Subject groovy git commit: Refine UnlimitedConcurrentCache
Date Sun, 10 Dec 2017 11:03:43 GMT
Repository: groovy
Updated Branches:
  refs/heads/master 5a16022eb -> e26394b15


Refine UnlimitedConcurrentCache


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/e26394b1
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/e26394b1
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/e26394b1

Branch: refs/heads/master
Commit: e26394b154cca57237688f5d5901ca5ce95785ef
Parents: 5a16022
Author: sunlan <sunlan@apache.org>
Authored: Sun Dec 10 19:03:33 2017 +0800
Committer: sunlan <sunlan@apache.org>
Committed: Sun Dec 10 19:03:33 2017 +0800

----------------------------------------------------------------------
 .../groovy/runtime/memoize/UnlimitedConcurrentCache.java    | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/e26394b1/src/main/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java b/src/main/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java
index 6dcdeba..874ab5d 100644
--- a/src/main/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java
+++ b/src/main/org/codehaus/groovy/runtime/memoize/UnlimitedConcurrentCache.java
@@ -19,7 +19,6 @@
 package org.codehaus.groovy.runtime.memoize;
 
 import java.lang.ref.SoftReference;
-import java.util.Iterator;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
@@ -45,11 +44,11 @@ public final class UnlimitedConcurrentCache implements MemoizeCache<Object,
Obje
      * SoftReferences to gc-evicted objects.
      */
     public void cleanUpNullReferences() {
-        final Iterator<Map.Entry<Object, Object>> iterator = cache.entrySet().iterator();
-        while (iterator.hasNext()) {
-            final Map.Entry<Object, Object> entry = iterator.next();
+        for (Map.Entry<Object, Object> entry : cache.entrySet()) {
             Object entryVal = entry.getValue();
-            if (entryVal != null && ((SoftReference) entryVal).get() == null) cache.remove(entry.getKey(),
entryVal);
+            if (entryVal instanceof SoftReference && ((SoftReference) entryVal).get()
== null) {
+                cache.remove(entry.getKey(), entryVal);
+            }
         }
     }
 }


Mime
View raw message