diff options
author | 2013-10-01 09:51:43 -0700 | |
---|---|---|
committer | 2013-10-01 09:51:43 -0700 | |
commit | d00e48656b02ff49fc834ed6762dc194d00b42ad (patch) | |
tree | 56c4c82513739aab4ccf4e610063ca3ef92df040 /java | |
parent | bff2d14d1caf4d70f8c1fdcbbf8e9b41209a3e94 (diff) | |
parent | 126d758c1e8db969ad1c9e5d801f3075e2061cc1 (diff) | |
download | latinime-d00e48656b02ff49fc834ed6762dc194d00b42ad.tar.gz latinime-d00e48656b02ff49fc834ed6762dc194d00b42ad.tar.xz latinime-d00e48656b02ff49fc834ed6762dc194d00b42ad.zip |
am 126d758c: Merge "Quit blocking getSuggestion during GC."
* commit '126d758c1e8db969ad1c9e5d801f3075e2061cc1':
Quit blocking getSuggestion during GC.
Diffstat (limited to 'java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/BinaryDictionary.java | 9 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | 24 |
2 files changed, 21 insertions, 12 deletions
diff --git a/java/src/com/android/inputmethod/latin/BinaryDictionary.java b/java/src/com/android/inputmethod/latin/BinaryDictionary.java index b7b08cd97..d9bad7e57 100644 --- a/java/src/com/android/inputmethod/latin/BinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/BinaryDictionary.java @@ -270,18 +270,11 @@ public final class BinaryDictionary extends Dictionary { return getBigramProbabilityNative(mNativeDict, codePoints0, codePoints1); } - private void runGCIfRequired() { - if (needsToRunGC(true /* mindsBlockByGC */)) { - flushWithGC(); - } - } - // Add a unigram entry to binary dictionary in native code. public void addUnigramWord(final String word, final int probability) { if (TextUtils.isEmpty(word)) { return; } - runGCIfRequired(); final int[] codePoints = StringUtils.toCodePointArray(word); addUnigramWordNative(mNativeDict, codePoints, probability); } @@ -291,7 +284,6 @@ public final class BinaryDictionary extends Dictionary { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) { return; } - runGCIfRequired(); final int[] codePoints0 = StringUtils.toCodePointArray(word0); final int[] codePoints1 = StringUtils.toCodePointArray(word1); addBigramWordsNative(mNativeDict, codePoints0, codePoints1, probability); @@ -302,7 +294,6 @@ public final class BinaryDictionary extends Dictionary { if (TextUtils.isEmpty(word0) || TextUtils.isEmpty(word1)) { return; } - runGCIfRequired(); final int[] codePoints0 = StringUtils.toCodePointArray(word0); final int[] codePoints1 = StringUtils.toCodePointArray(word1); removeBigramWordsNative(mNativeDict, codePoints0, codePoints1); diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index 2d1ca51e2..306c1a253 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -273,6 +273,24 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { lastModifiedTime); } + private void runGCIfRequired() { + if (!ENABLE_BINARY_DICTIONARY_DYNAMIC_UPDATE) return; + if (mBinaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) { + if (setIsRegeneratingIfNotRegenerating()) { + getExecutor(mFilename).execute(new Runnable() { + @Override + public void run() { + try { + mBinaryDictionary.flushWithGC(); + } finally { + mFilenameDictionaryUpdateController.mIsRegenerating.set(false); + } + } + }); + } + } + } + /** * Dynamically adds a word unigram to the dictionary. May overwrite an existing entry. */ @@ -282,7 +300,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { Log.w(TAG, "addWordDynamically is called for non-updatable dictionary: " + mFilename); return; } - + runGCIfRequired(); getExecutor(mFilename).execute(new Runnable() { @Override public void run() { @@ -306,7 +324,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { + mFilename); return; } - + runGCIfRequired(); getExecutor(mFilename).execute(new Runnable() { @Override public void run() { @@ -330,7 +348,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { + mFilename); return; } - + runGCIfRequired(); getExecutor(mFilename).execute(new Runnable() { @Override public void run() { |