diff options
| author | Pierre-Charles David | 2015-09-21 08:28:44 +0000 |
|---|---|---|
| committer | Pierre-Charles David | 2016-02-23 10:29:39 +0000 |
| commit | 08dcd2af0d5d69d65a505278b14439656dc19a55 (patch) | |
| tree | 5559eda54283da8dd196db790ad332db53708147 | |
| parent | 89aaf8ac55fb02d2e0007a4a26a42f10d2706c45 (diff) | |
| download | org.eclipse.sirius-08dcd2af0d5d69d65a505278b14439656dc19a55.tar.gz org.eclipse.sirius-08dcd2af0d5d69d65a505278b14439656dc19a55.tar.xz org.eclipse.sirius-08dcd2af0d5d69d65a505278b14439656dc19a55.zip | |
[442268] Tweak Guava cache configuration and fix SWT resource leak
Bug: 442268
Change-Id: Ie7c96a6da7a3635ae9d10e879e4b34e23c677b7f
Signed-off-by: Pierre-Charles David <pierre-charles.david@obeo.fr>
| -rw-r--r-- | plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java index 315e4dfcf5..2cf6703d47 100644 --- a/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java +++ b/plugins/org.eclipse.sirius.diagram.ui/src-diag/org/eclipse/sirius/diagram/ui/tools/api/figure/SVGFigure.java @@ -38,6 +38,8 @@ import org.w3c.dom.Document; import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; +import com.google.common.cache.RemovalListener; +import com.google.common.cache.RemovalNotification; import com.google.common.collect.Lists; //CHECKSTYLE:OFF @@ -49,7 +51,12 @@ public class SVGFigure extends Figure implements StyledFigure, ITransparentFigur /** * The rendered bitmaps, organized by key.. */ - private final Cache<String, Image> images = CacheBuilder.newBuilder().softValues().build(); + private final Cache<String, Image> images = CacheBuilder.newBuilder().maximumSize(10).removalListener(new RemovalListener<String, Image>() { + @Override + public void onRemoval(RemovalNotification<String, Image> notification) { + notification.getValue().dispose(); + } + }).build(); /** * Get the image cached or create new one and cache it. |
