Skip to content

Commit e563e26

Browse files
Make FontData key in map immutable
Creating clone of FontData to be used as a key in map of ScalingSWTFontRegistry and DefaultSWTFontRegistry to make it immutable and inaccessible from outside of the class
1 parent 0f21a6e commit e563e26

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/internal/DefaultSWTFontRegistry.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,8 @@ public Font getFont(FontData fontData, int zoom) {
7272
}
7373

7474
private Font registerFont(FontData fontData, Font font) {
75-
fontsMap.put(fontData, font);
75+
FontData cloneFontData = new FontData(fontData.getName(), fontData.getHeight(), fontData.getStyle());
76+
fontsMap.put(cloneFontData, font);
7677
return font;
7778
}
7879

bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/internal/ScalingSWTFontRegistry.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,9 @@ public Font getFont(FontData fontData, int zoom) {
130130
if (customFontsKeyMap.containsKey(fontData)) {
131131
container = customFontsKeyMap.get(fontData);
132132
} else {
133-
container = new ScaledCustomFontContainer(fontData);
134-
customFontsKeyMap.put(fontData, container);
133+
FontData cloneFontData = new FontData(fontData.getName(), fontData.getHeight(), fontData.getStyle());
134+
container = new ScaledCustomFontContainer(cloneFontData);
135+
customFontsKeyMap.put(cloneFontData, container);
135136
}
136137
return container.getScaledFont(zoom);
137138
}

0 commit comments

Comments
 (0)