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

Commit 2deb2fab authored by Abodunrinwa Toki's avatar Abodunrinwa Toki Committed by android-build-merger
Browse files

Merge "Close file descriptor after SmartSelection is initialized." into oc-dev

am: b950ac6b

Change-Id: I9ec0463e9641fb6a54e26311273932d3d1a6d41e
parents 7f2cc46a b950ac6b
Loading
Loading
Loading
Loading
+10 −9
Original line number Diff line number Diff line
@@ -183,7 +183,9 @@ final class TextClassifierImpl implements TextClassifier {
            }
            if (mSmartSelection == null || !Objects.equals(mLocale, locale)) {
                destroySmartSelectionIfExistsLocked();
                mSmartSelection = new SmartSelection(getFdLocked(locale));
                final ParcelFileDescriptor fd = getFdLocked(locale);
                mSmartSelection = new SmartSelection(fd.getFd());
                closeAndLogError(fd);
                mLocale = locale;
            }
            return mSmartSelection;
@@ -191,7 +193,7 @@ final class TextClassifierImpl implements TextClassifier {
    }

    @GuardedBy("mSmartSelectionLock") // Do not call outside this lock.
    private int getFdLocked(Locale locale) throws FileNotFoundException {
    private ParcelFileDescriptor getFdLocked(Locale locale) throws FileNotFoundException {
        ParcelFileDescriptor updateFd;
        try {
            updateFd = ParcelFileDescriptor.open(
@@ -214,7 +216,7 @@ final class TextClassifierImpl implements TextClassifier {

        if (updateFd == null) {
            if (factoryFd != null) {
                return factoryFd.getFd();
                return factoryFd;
            } else {
                throw new FileNotFoundException(
                        String.format("No model file found for %s", locale));
@@ -227,7 +229,7 @@ final class TextClassifierImpl implements TextClassifier {
                SmartSelection.getLanguage(updateFdInt).trim().toLowerCase());
        if (factoryFd == null) {
            if (localeMatches) {
                return updateFdInt;
                return updateFd;
            } else {
                closeAndLogError(updateFd);
                throw new FileNotFoundException(
@@ -237,18 +239,17 @@ final class TextClassifierImpl implements TextClassifier {

        if (!localeMatches) {
            closeAndLogError(updateFd);
            return factoryFd.getFd();
            return factoryFd;
        }

        final int updateVersion = SmartSelection.getVersion(updateFdInt);
        final int factoryFdInt = factoryFd.getFd();
        final int factoryVersion = SmartSelection.getVersion(factoryFdInt);
        final int factoryVersion = SmartSelection.getVersion(factoryFd.getFd());
        if (updateVersion > factoryVersion) {
            closeAndLogError(factoryFd);
            return updateFdInt;
            return updateFd;
        } else {
            closeAndLogError(updateFd);
            return factoryFdInt;
            return factoryFd;
        }
    }