修复内存泄漏 (#1888)
* Fix memory leaks * Cache icon in cell * Lazy acquisition of availableCharsets
This commit is contained in:
@@ -88,7 +88,7 @@ public final class CompressingUtils {
|
||||
}
|
||||
|
||||
public static Charset findSuitableEncoding(Path zipFile) throws IOException {
|
||||
return findSuitableEncoding(zipFile, Charset.availableCharsets().values());
|
||||
return findSuitableEncoding(zipFile, null);
|
||||
}
|
||||
|
||||
public static Charset findSuitableEncoding(Path zipFile, Collection<Charset> candidates) throws IOException {
|
||||
@@ -98,7 +98,7 @@ public final class CompressingUtils {
|
||||
}
|
||||
|
||||
public static Charset findSuitableEncoding(ZipFile zipFile) throws IOException {
|
||||
return findSuitableEncoding(zipFile, Charset.availableCharsets().values());
|
||||
return findSuitableEncoding(zipFile, null);
|
||||
}
|
||||
|
||||
public static Charset findSuitableEncoding(ZipFile zipFile, Collection<Charset> candidates) throws IOException {
|
||||
@@ -106,6 +106,9 @@ public final class CompressingUtils {
|
||||
if (OperatingSystem.NATIVE_CHARSET != StandardCharsets.UTF_8 && testEncoding(zipFile, OperatingSystem.NATIVE_CHARSET))
|
||||
return OperatingSystem.NATIVE_CHARSET;
|
||||
|
||||
if (candidates == null)
|
||||
candidates = Charset.availableCharsets().values();
|
||||
|
||||
for (Charset charset : candidates)
|
||||
if (charset != null && testEncoding(zipFile, charset))
|
||||
return charset;
|
||||
@@ -156,8 +159,6 @@ public final class CompressingUtils {
|
||||
public FileSystem build() throws IOException {
|
||||
if (autoDetectEncoding) {
|
||||
if (!testEncoding(zip, encoding)) {
|
||||
if (charsetCandidates == null)
|
||||
charsetCandidates = Charset.availableCharsets().values();
|
||||
encoding = findSuitableEncoding(zip, charsetCandidates);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user