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
|
// Note : this must be reentrant
|
||||||
/**
|
/**
|
||||||
* Gets a list of suggestions for a specific string. This returns a list of possible
|
* 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.
|
* even perform grammatical analysis.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
@ -153,9 +153,14 @@ public class AndroidSpellCheckerService extends SpellCheckerService {
|
||||||
composer.add(character, proximities,
|
composer.add(character, proximities,
|
||||||
WordComposer.NOT_A_COORDINATE, WordComposer.NOT_A_COORDINATE);
|
WordComposer.NOT_A_COORDINATE, WordComposer.NOT_A_COORDINATE);
|
||||||
}
|
}
|
||||||
dictionary.getWords(composer, suggestionsGatherer, mProximityInfo);
|
final boolean isInDict;
|
||||||
final boolean isInDict = dictionary.isValidWord(text);
|
final String[] suggestions;
|
||||||
final String[] suggestions = suggestionsGatherer.getGatheredSuggestions();
|
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 =
|
final int flags =
|
||||||
(isInDict ? SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY : 0)
|
(isInDict ? SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY : 0)
|
||||||
|
|
Loading…
Reference in a new issue