aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r--java/src/com/android/inputmethod/latin/InputPointers.java35
-rw-r--r--java/src/com/android/inputmethod/latin/LastComposedWord.java2
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java2
3 files changed, 24 insertions, 15 deletions
diff --git a/java/src/com/android/inputmethod/latin/InputPointers.java b/java/src/com/android/inputmethod/latin/InputPointers.java
index 298e2b213..febabadf7 100644
--- a/java/src/com/android/inputmethod/latin/InputPointers.java
+++ b/java/src/com/android/inputmethod/latin/InputPointers.java
@@ -20,10 +20,19 @@ import java.util.Arrays;
// TODO: This class is not thread-safe.
public class InputPointers {
- private final ScalableIntArray mXCoordinates = new ScalableIntArray();
- private final ScalableIntArray mYCoordinates = new ScalableIntArray();
- private final ScalableIntArray mPointerIds = new ScalableIntArray();
- private final ScalableIntArray mTimes = new ScalableIntArray();
+ private final int mDefaultCapacity;
+ private final ScalableIntArray mXCoordinates;
+ private final ScalableIntArray mYCoordinates;
+ private final ScalableIntArray mPointerIds;
+ private final ScalableIntArray mTimes;
+
+ public InputPointers(int defaultCapacity) {
+ mDefaultCapacity = defaultCapacity;
+ mXCoordinates = new ScalableIntArray(defaultCapacity);
+ mYCoordinates = new ScalableIntArray(defaultCapacity);
+ mPointerIds = new ScalableIntArray(defaultCapacity);
+ mTimes = new ScalableIntArray(defaultCapacity);
+ }
public void addPointer(int index, int x, int y, int pointerId, int time) {
mXCoordinates.add(index, x);
@@ -70,10 +79,11 @@ public class InputPointers {
}
public void reset() {
- mXCoordinates.reset();
- mYCoordinates.reset();
- mPointerIds.reset();
- mTimes.reset();
+ final int defaultCapacity = mDefaultCapacity;
+ mXCoordinates.reset(defaultCapacity);
+ mYCoordinates.reset(defaultCapacity);
+ mPointerIds.reset(defaultCapacity);
+ mTimes.reset(defaultCapacity);
}
public int getPointerSize() {
@@ -97,12 +107,11 @@ public class InputPointers {
}
private static class ScalableIntArray {
- private static final int DEFAULT_SIZE = BinaryDictionary.MAX_WORD_LENGTH;
private int[] mArray;
private int mLength;
- public ScalableIntArray() {
- reset();
+ public ScalableIntArray(int capacity) {
+ reset(capacity);
}
public void add(int index, int val) {
@@ -136,8 +145,8 @@ public class InputPointers {
return mLength;
}
- public void reset() {
- mArray = new int[DEFAULT_SIZE];
+ public void reset(int capacity) {
+ mArray = new int[capacity];
mLength = 0;
}
diff --git a/java/src/com/android/inputmethod/latin/LastComposedWord.java b/java/src/com/android/inputmethod/latin/LastComposedWord.java
index 974af2584..bb39ce4f7 100644
--- a/java/src/com/android/inputmethod/latin/LastComposedWord.java
+++ b/java/src/com/android/inputmethod/latin/LastComposedWord.java
@@ -45,7 +45,7 @@ public class LastComposedWord {
public final String mCommittedWord;
public final int mSeparatorCode;
public final CharSequence mPrevWord;
- public final InputPointers mInputPointers = new InputPointers();
+ public final InputPointers mInputPointers = new InputPointers(BinaryDictionary.MAX_WORD_LENGTH);
private boolean mActive;
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index ca9dbaf05..6d346d179 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -33,7 +33,7 @@ public class WordComposer {
private static final int N = BinaryDictionary.MAX_WORD_LENGTH;
private int[] mPrimaryKeyCodes;
- private final InputPointers mInputPointers = new InputPointers();
+ private final InputPointers mInputPointers = new InputPointers(N);
private final StringBuilder mTypedWord;
private CharSequence mAutoCorrection;
private boolean mIsResumed;