A little optimization of InputPointers.copy
Change-Id: Id83b34e076ef91e06d7c1dd2b3ee7bb64d01b8cb
diff --git a/java/proguard.flags b/java/proguard.flags
index ca205b9..376a0e0 100644
--- a/java/proguard.flags
+++ b/java/proguard.flags
@@ -20,6 +20,10 @@
boolean equalsIgnoreCase(...);
}
+-keep class com.android.inputmethod.latin.InputPointers {
+ *;
+}
+
-keep class com.android.inputmethod.latin.spellcheck.SpellCheckerSettingsFragment {
*;
}
diff --git a/java/src/com/android/inputmethod/latin/InputPointers.java b/java/src/com/android/inputmethod/latin/InputPointers.java
index 9d77d4e..cd53bcd 100644
--- a/java/src/com/android/inputmethod/latin/InputPointers.java
+++ b/java/src/com/android/inputmethod/latin/InputPointers.java
@@ -16,9 +16,6 @@
package com.android.inputmethod.latin;
-import java.util.Arrays;
-
-// TODO: Add unit test
public class InputPointers {
private final ScalableIntArray mXCoordinates = new ScalableIntArray();
private final ScalableIntArray mYCoordinates = new ScalableIntArray();
@@ -118,9 +115,10 @@
}
public void add(int val) {
- ensureCapacity(mLength);
+ final int nextLength = mLength + 1;
+ ensureCapacity(nextLength);
mArray[mLength] = val;
- ++mLength;
+ mLength = nextLength;
}
public void ensureCapacity(int minimumCapacity) {
@@ -132,7 +130,7 @@
private void grow(int newCapacity) {
final int[] newArray = new int[newCapacity];
- System.arraycopy(mArray, 0, newArray, 0, mLength);
+ System.arraycopy(mArray, 0, newArray, 0, mArray.length);
mArray = newArray;
}
@@ -150,7 +148,8 @@
}
public void copy(ScalableIntArray ip) {
- mArray = Arrays.copyOf(ip.mArray, ip.mArray.length);
+ ensureCapacity(ip.mLength);
+ System.arraycopy(ip.mArray, 0, mArray, 0, ip.mLength);
mLength = ip.mLength;
}