[467672] Memory leak on VisualBindingManager.fontCache
To avoid memory leak we create a standard java collection instead of
keeping reference to format EList paramter.
Bug: 467672
Change-Id: Idf38176752deaafa92d36aaed00c495aead4fa4c
Signed-off-by: Esteban Dugueperoux <esteban.dugueperoux@obeo.fr>
diff --git a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/color/VisualBindingManager.java b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/color/VisualBindingManager.java
index 6e2f069..28bd835 100644
--- a/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/color/VisualBindingManager.java
+++ b/plugins/org.eclipse.sirius.ui/src/org/eclipse/sirius/ui/tools/api/color/VisualBindingManager.java
@@ -11,10 +11,12 @@
package org.eclipse.sirius.ui.tools.api.color;
import java.util.Collection;
+import java.util.EnumSet;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
@@ -707,12 +709,12 @@
private static final class FontStyleDescriptor {
final String name;
- final List<FontFormat> format;
+ final Set<FontFormat> format;
final int size;
public FontStyleDescriptor(final List<FontFormat> format, final int size, final String name) {
- this.format = format;
+ this.format = format.isEmpty() ? null : EnumSet.copyOf(format);
this.size = size;
this.name = name;
}