From: "Enrico Weigelt, metux IT consult" <enrico.weig...@gr13.net>

---
 .../freecol/common/resources/ResourceManager.java  | 28 ++++++++++------------
 .../freecol/common/resources/ResourceMapping.java  | 10 ++++++++
 2 files changed, 22 insertions(+), 16 deletions(-)

diff --git a/src/net/sf/freecol/common/resources/ResourceManager.java 
b/src/net/sf/freecol/common/resources/ResourceManager.java
index 00638a5ba70..97939d5e414 100644
--- a/src/net/sf/freecol/common/resources/ResourceManager.java
+++ b/src/net/sf/freecol/common/resources/ResourceManager.java
@@ -123,22 +123,18 @@ public class ResourceManager {
      * Clean up easily replaced modified copies in caches.
      */
     public static synchronized void clean() {
-        if (baseMapping != null) {
-            forEachMapEntry(baseMapping.getImageResources(),
-                            e -> e.getValue().clean());
-        }
-        if (tcMapping != null) {
-            forEachMapEntry(tcMapping.getImageResources(),
-                            e -> e.getValue().clean());
-        }
-        if (scenarioMapping != null) {
-            forEachMapEntry(scenarioMapping.getImageResources(),
-                            e -> e.getValue().clean());
-        }
-        if (modMapping != null) {
-            forEachMapEntry(modMapping.getImageResources(),
-                            e -> e.getValue().clean());
-        }
+        if (baseMapping != null)
+            baseMapping.cleanImageResources();
+
+        if (tcMapping != null)
+            tcMapping.cleanImageResources();
+
+        if (scenarioMapping != null)
+            scenarioMapping.cleanImageResources();
+
+        if (modMapping != null)
+            modMapping.cleanImageResources();
+
         System.gc();
     }
 
diff --git a/src/net/sf/freecol/common/resources/ResourceMapping.java 
b/src/net/sf/freecol/common/resources/ResourceMapping.java
index 8930c056784..d664d8f104b 100644
--- a/src/net/sf/freecol/common/resources/ResourceMapping.java
+++ b/src/net/sf/freecol/common/resources/ResourceMapping.java
@@ -320,4 +320,14 @@ public final class ResourceMapping {
         return transform(imageResources.keySet(), k -> k.startsWith(prefix),
                          Function.identity(), Collectors.toSet());
     }
+
+    /**
+     * Clean out image resources
+     */
+    public void cleanImageResources() {
+        for (ImageResource value : imageResources.values()) {
+            if (value != null)
+                value.clean();
+        }
+    }
 }
-- 
2.11.0.rc0.7.gbe5a750


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Freecol-developers mailing list
Freecol-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freecol-developers

Reply via email to