Workaround to avoid a bug in the batch input bigram dictionary lookup
Change-Id: I8a5641c88c45918d6bed81a0b03efdcff0b380c5
This commit is contained in:
parent
9c09fd02eb
commit
1250cdeab2
1 changed files with 8 additions and 4 deletions
|
@ -111,9 +111,14 @@ public class BinaryDictionary extends Dictionary {
|
|||
Arrays.fill(mInputCodes, WordComposer.NOT_A_CODE);
|
||||
Arrays.fill(mOutputChars, (char) 0);
|
||||
Arrays.fill(mOutputScores, 0);
|
||||
final boolean isGesture = composer.isBatchMode();
|
||||
final boolean isValidPrevWord = (prevWord == null)
|
||||
// TODO: Remove this check. Unfortunately the current gesture recognition code has
|
||||
// a double-free bug.
|
||||
&& !isGesture;
|
||||
// TODO: toLowerCase in the native code
|
||||
final int[] prevWordCodePointArray = (null == prevWord)
|
||||
? null : StringUtils.toCodePointArray(prevWord.toString());
|
||||
final int[] prevWordCodePointArray = isValidPrevWord
|
||||
? StringUtils.toCodePointArray(prevWord.toString()) : null;
|
||||
final int composerSize = composer.size();
|
||||
|
||||
if (composerSize <= 1 || !composer.isBatchMode()) {
|
||||
|
@ -124,7 +129,7 @@ public class BinaryDictionary extends Dictionary {
|
|||
}
|
||||
|
||||
final int count;
|
||||
if (!composer.isBatchMode() && composer.size() <= 1) {
|
||||
if (!isGesture && composer.size() <= 1) {
|
||||
if (TextUtils.isEmpty(prevWord)) return null;
|
||||
int tmpCount = getBigramsNative(mNativeDict, prevWordCodePointArray,
|
||||
prevWordCodePointArray.length, mInputCodes, composerSize,
|
||||
|
@ -132,7 +137,6 @@ public class BinaryDictionary extends Dictionary {
|
|||
count = Math.min(tmpCount, MAX_BIGRAMS);
|
||||
} else {
|
||||
final InputPointers ips = composer.getInputPointers();
|
||||
final boolean isGesture = composer.isBatchMode();
|
||||
final int codesSize;
|
||||
if (isGesture) {
|
||||
codesSize = ips.getPointerSize();
|
||||
|
|
Loading…
Reference in a new issue