diff options
author | 2013-09-20 18:21:10 +0900 | |
---|---|---|
committer | 2013-09-20 18:21:10 +0900 | |
commit | be3be424a38ecb46bb24423be42ad290e896c6cc (patch) | |
tree | bf7858af1c4ee1dc01ca5a6c91a628a7fed47ef6 | |
parent | 3de1aca289d9fa1173b61cac0a93537d72f41c4b (diff) | |
download | latinime-be3be424a38ecb46bb24423be42ad290e896c6cc.tar.gz latinime-be3be424a38ecb46bb24423be42ad290e896c6cc.tar.xz latinime-be3be424a38ecb46bb24423be42ad290e896c6cc.zip |
Fix a bug that happens upon a race condition
Bug: 10848621
Change-Id: If5ff7f001e69af005a5ff9ab3e9f630b88a0a858
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 1 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/utils/TextRange.java | 4 |
2 files changed, 5 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index dead53032..c9311a6d8 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -2746,6 +2746,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen final TextRange range = mConnection.getWordRangeAtCursor(currentSettings.mWordSeparators, 0 /* additionalPrecedingWordsCount */); if (null == range) return; // Happens if we don't have an input connection at all + if (range.length() <= 0) return; // Race condition. No text to resume on, so bail out. // If for some strange reason (editor bug or so) we measure the text before the cursor as // longer than what the entire text is supposed to be, the safe thing to do is bail out. final int numberOfCharsInWordBeforeCursor = range.getNumberOfCharsInWordBeforeCursor(); diff --git a/java/src/com/android/inputmethod/latin/utils/TextRange.java b/java/src/com/android/inputmethod/latin/utils/TextRange.java index 5793e4170..48b443ddd 100644 --- a/java/src/com/android/inputmethod/latin/utils/TextRange.java +++ b/java/src/com/android/inputmethod/latin/utils/TextRange.java @@ -40,6 +40,10 @@ public final class TextRange { return mWordAtCursorEndIndex - mCursorIndex; } + public int length() { + return mWord.length(); + } + /** * Gets the suggestion spans that are put squarely on the word, with the exact start * and end of the span matching the boundaries of the word. |