libbluray | branch: master | hpi1 <[email protected]> | Tue Aug 26 13:42:33 2014 +0300| [c059a18956e9f36dddf5b79efcbe56a1a58fdd09] | committer: hpi1
FontFactory: avoid leaking font file descriptors > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=c059a18956e9f36dddf5b79efcbe56a1a58fdd09 --- .../bdj/java-j2se/org/dvb/ui/FontFactory.java | 28 +++++++++++++++----- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/libbluray/bdj/java-j2se/org/dvb/ui/FontFactory.java b/src/libbluray/bdj/java-j2se/org/dvb/ui/FontFactory.java index eeb6eb9..567e970 100644 --- a/src/libbluray/bdj/java-j2se/org/dvb/ui/FontFactory.java +++ b/src/libbluray/bdj/java-j2se/org/dvb/ui/FontFactory.java @@ -50,19 +50,35 @@ public class FontFactory { fonts = new HashMap(fontIndexData.length); for (int i = 0; i < fontIndexData.length; i++) { FontIndexData data = fontIndexData[i]; - FileInputStream inStream = new FileInputStream(BDJUtil.discRootToFilesystem("/BDMV/AUXDATA/" + data.getFileName())); + FileInputStream inStream = null; - Font font = Font.createFont(Font.TRUETYPE_FONT, inStream); - font = font.deriveFont(data.getStyle(), data.getMaxSize()); + try { + inStream = new FileInputStream(BDJUtil.discRootToFilesystem("/BDMV/AUXDATA/" + data.getFileName())); + Font font = Font.createFont(Font.TRUETYPE_FONT, inStream); + font = font.deriveFont(data.getStyle(), data.getMaxSize()); - fonts.put(data.getName(), font); + fonts.put(data.getName(), font); + + } finally { + if (inStream != null) { + inStream.close(); + } + } } } public FontFactory(URL u) throws IOException, FontFormatException { - FileInputStream inStream = new FileInputStream(u.getPath()); + FileInputStream inStream = null; + + try { + inStream = new FileInputStream(u.getPath()); + urlFont = Font.createFont(Font.TRUETYPE_FONT, inStream); - urlFont = Font.createFont(Font.TRUETYPE_FONT, inStream); + } finally { + if (inStream != null) { + inStream.close(); + } + } } public Font createFont(String name, int style, int size) _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
