Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6d5f9fd3 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android (Google) Code Review
Browse files

Merge "Fix possible NPE."

parents 74b5291b 8214a8c2
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -643,6 +643,10 @@ public final class BinaryDictDecoderUtils {
     * @return true if it's a binary dictionary, false otherwise
     */
    public static boolean isBinaryDictionary(final File file) {
        return FormatSpec.getDictDecoder(file).hasValidRawBinaryDictionary();
        final DictDecoder dictDecoder = FormatSpec.getDictDecoder(file);
        if (dictDecoder == null) {
            return false;
        }
        return dictDecoder.hasValidRawBinaryDictionary();
    }
}
+4 −0
Original line number Diff line number Diff line
@@ -309,6 +309,7 @@ public final class BinaryDictIOUtils {
     * @param file The file to read.
     * @param offset The offset in the file where to start reading the data.
     * @param length The length of the data file.
     * @return the header of the specified dictionary file.
     */
    private static FileHeader getDictionaryFileHeader(
            final File file, final long offset, final long length)
@@ -330,6 +331,9 @@ public final class BinaryDictIOUtils {
                    }
                }
        );
        if (dictDecoder == null) {
            return null;
        }
        return dictDecoder.readHeader();
    }

+10 −1
Original line number Diff line number Diff line
@@ -282,10 +282,19 @@ public class DictionaryInfoUtils {
        return BinaryDictIOUtils.getDictionaryFileHeaderOrNull(file, 0, file.length());
    }

    /**
     * Returns information of the dictionary.
     *
     * @param fileAddress the asset dictionary file address.
     * @return information of the specified dictionary.
     */
    private static DictionaryInfo createDictionaryInfoFromFileAddress(
            final AssetFileAddress fileAddress) {
        final FileHeader header = BinaryDictIOUtils.getDictionaryFileHeaderOrNull(
                new File(fileAddress.mFilename), fileAddress.mOffset, fileAddress.mLength);
        if (header == null) {
            return null;
        }
        final String id = header.getId();
        final Locale locale = LocaleUtils.constructLocaleFromString(header.getLocaleString());
        final String description = header.getDescription();
@@ -328,7 +337,7 @@ public class DictionaryInfoUtils {
                    // Protect against cases of a less-specific dictionary being found, like an
                    // en dictionary being used for an en_US locale. In this case, the en dictionary
                    // should be used for en_US but discounted for listing purposes.
                    if (!dictionaryInfo.mLocale.equals(locale)) continue;
                    if (dictionaryInfo == null || !dictionaryInfo.mLocale.equals(locale)) continue;
                    addOrUpdateDictInfo(dictList, dictionaryInfo);
                }
            }