From d64a2d9941c36a7bc2a7959ea10ab8363192ac14 Mon Sep 17 00:00:00 2001 From: Adam Cozzette Date: Wed, 29 Jun 2016 15:23:27 -0700 Subject: Integrated internal changes from Google This includes all internal changes from around May 20 to now. --- .../java/com/google/protobuf/FloatArrayList.java | 51 ++++++++++++---------- 1 file changed, 27 insertions(+), 24 deletions(-) (limited to 'java/core/src/main/java/com/google/protobuf/FloatArrayList.java') diff --git a/java/core/src/main/java/com/google/protobuf/FloatArrayList.java b/java/core/src/main/java/com/google/protobuf/FloatArrayList.java index 63cb6d77..90d6154b 100644 --- a/java/core/src/main/java/com/google/protobuf/FloatArrayList.java +++ b/java/core/src/main/java/com/google/protobuf/FloatArrayList.java @@ -38,25 +38,27 @@ import java.util.RandomAccess; /** * An implementation of {@link FloatList} on top of a primitive array. - * + * * @author dweis@google.com (Daniel Weis) */ -final class FloatArrayList extends AbstractProtobufList implements FloatList, RandomAccess { - +final class FloatArrayList + extends AbstractProtobufList + implements FloatList, RandomAccess { + private static final FloatArrayList EMPTY_LIST = new FloatArrayList(); static { EMPTY_LIST.makeImmutable(); } - + public static FloatArrayList emptyList() { return EMPTY_LIST; } - + /** * The backing store for the list. */ private float[] array; - + /** * The size of the list distinct from the length of the array. That is, it is the number of * elements set in the list. @@ -71,13 +73,14 @@ final class FloatArrayList extends AbstractProtobufList implements FloatL } /** - * Constructs a new mutable {@code FloatArrayList} containing the same elements as {@code other}. + * Constructs a new mutable {@code FloatArrayList} + * containing the same elements as {@code other}. */ - private FloatArrayList(float[] array, int size) { - this.array = array; + private FloatArrayList(float[] other, int size) { + array = other; this.size = size; } - + @Override public boolean equals(Object o) { if (this == o) { @@ -90,14 +93,14 @@ final class FloatArrayList extends AbstractProtobufList implements FloatL if (size != other.size) { return false; } - + final float[] arr = other.array; for (int i = 0; i < size; i++) { if (array[i] != arr[i]) { return false; } } - + return true; } @@ -117,7 +120,7 @@ final class FloatArrayList extends AbstractProtobufList implements FloatL } return new FloatArrayList(Arrays.copyOf(array, capacity), size); } - + @Override public Float get(int index) { return getFloat(index); @@ -169,7 +172,7 @@ final class FloatArrayList extends AbstractProtobufList implements FloatL if (index < 0 || index > size) { throw new IndexOutOfBoundsException(makeOutOfBoundsExceptionMessage(index)); } - + if (size < array.length) { // Shift everything over to make room System.arraycopy(array, index, array, index + 1, size - index); @@ -177,10 +180,10 @@ final class FloatArrayList extends AbstractProtobufList implements FloatL // Resize to 1.5x the size int length = ((size * 3) / 2) + 1; float[] newArray = new float[length]; - + // Copy the first part directly System.arraycopy(array, 0, newArray, 0, index); - + // Copy the rest shifted over by one to make room System.arraycopy(array, index, newArray, index + 1, size - index); array = newArray; @@ -194,38 +197,38 @@ final class FloatArrayList extends AbstractProtobufList implements FloatL @Override public boolean addAll(Collection collection) { ensureIsMutable(); - + if (collection == null) { throw new NullPointerException(); } - + // We specialize when adding another FloatArrayList to avoid boxing elements. if (!(collection instanceof FloatArrayList)) { return super.addAll(collection); } - + FloatArrayList list = (FloatArrayList) collection; if (list.size == 0) { return false; } - + int overflow = Integer.MAX_VALUE - size; if (overflow < list.size) { // We can't actually represent a list this large. throw new OutOfMemoryError(); } - + int newSize = size + list.size; if (newSize > array.length) { array = Arrays.copyOf(array, newSize); } - + System.arraycopy(list.array, 0, array, size, list.size); size = newSize; modCount++; return true; } - + @Override public boolean remove(Object o) { ensureIsMutable(); @@ -254,7 +257,7 @@ final class FloatArrayList extends AbstractProtobufList implements FloatL /** * Ensures that the provided {@code index} is within the range of {@code [0, size]}. Throws an * {@link IndexOutOfBoundsException} if it is not. - * + * * @param index the index to verify is in range */ private void ensureIndexInRange(int index) { -- cgit v1.2.3