You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2015/07/10 10:06:38 UTC

svn commit: r1690219 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontCache.java

Author: jahewson
Date: Fri Jul 10 08:06:37 2015
New Revision: 1690219

URL: http://svn.apache.org/r1690219
Log:
PDFBOX-2842: Use SoftReference for FontCache

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontCache.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontCache.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontCache.java?rev=1690219&r1=1690218&r2=1690219&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontCache.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontCache.java Fri Jul 10 08:06:37 2015
@@ -17,6 +17,7 @@
 
 package org.apache.pdfbox.pdmodel.font;
 
+import java.lang.ref.SoftReference;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 import org.apache.fontbox.FontBoxFont;
@@ -29,14 +30,15 @@ import org.apache.fontbox.FontBoxFont;
  */
 public final class FontCache
 {
-    private final Map<FontInfo, FontBoxFont> cache = new ConcurrentHashMap<FontInfo, FontBoxFont>();
+    private final Map<FontInfo, SoftReference<FontBoxFont>> cache =
+            new ConcurrentHashMap<FontInfo, SoftReference<FontBoxFont>>();
 
     /**
      * Adds the given FontBox font to the cache.
      */
     public void addFont(FontInfo info, FontBoxFont font)
     {
-        cache.put(info, font);
+        cache.put(info, new SoftReference<FontBoxFont>(font));
     }
 
     /**
@@ -44,6 +46,6 @@ public final class FontCache
      */
     public FontBoxFont getFont(FontInfo info)
     {
-        return cache.get(info);
+        return cache.get(info).get();
     }
 }