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
This commit is contained in:
parent
8f7f406c5b
commit
70b9c5d991
1 changed files with 9 additions and 4 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue