diff options
author | 2011-08-16 13:58:37 +0900 | |
---|---|---|
committer | 2011-08-16 13:58:37 +0900 | |
commit | 70b9c5d9913b676f21fe29f795bdb25324509205 (patch) | |
tree | bad6c4277eb541f8487bad9cac909ff0f6b07834 /java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java | |
parent | 8f7f406c5bed8966310ba8ea6d8f93cbaa94cbd4 (diff) | |
download | latinime-70b9c5d9913b676f21fe29f795bdb25324509205.tar.gz latinime-70b9c5d9913b676f21fe29f795bdb25324509205.tar.xz latinime-70b9c5d9913b676f21fe29f795bdb25324509205.zip |
Make the spell checker re-entrant.
Until the dictionary itself is re-entrant, unfortunately we have
to synchronize accesses to it.
Bug: 5156851
Change-Id: I1629a160d707e6fa1ad80cba828798abb24b68b1
Diffstat (limited to 'java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java index 44e999572..d2b6bcdf2 100644 --- a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java @@ -126,7 +126,7 @@ public class AndroidSpellCheckerService extends SpellCheckerService { // Note : this must be reentrant /** * Gets a list of suggestions for a specific string. This returns a list of possible - * corrections for the text passed as an arguments. It may split or group words, and + * corrections for the text passed as an argument. It may split or group words, and * even perform grammatical analysis. */ @Override @@ -153,9 +153,14 @@ public class AndroidSpellCheckerService extends SpellCheckerService { composer.add(character, proximities, WordComposer.NOT_A_COORDINATE, WordComposer.NOT_A_COORDINATE); } - dictionary.getWords(composer, suggestionsGatherer, mProximityInfo); - final boolean isInDict = dictionary.isValidWord(text); - final String[] suggestions = suggestionsGatherer.getGatheredSuggestions(); + final boolean isInDict; + final String[] suggestions; + synchronized(dictionary) { + // TODO: make the dictionary reentrant so that we don't have to synchronize here + dictionary.getWords(composer, suggestionsGatherer, mProximityInfo); + isInDict = dictionary.isValidWord(text); + suggestions = suggestionsGatherer.getGatheredSuggestions(); + } final int flags = (isInDict ? SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY : 0) |