aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dexlib2/src/main/java/org/jf/dexlib2/base/reference/BaseMethodReference.java2
-rw-r--r--dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/FixedSizeList.java2
-rw-r--r--util/src/main/java/org/jf/util/CollectionUtils.java22
3 files changed, 22 insertions, 4 deletions
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/base/reference/BaseMethodReference.java b/dexlib2/src/main/java/org/jf/dexlib2/base/reference/BaseMethodReference.java
index 3d797bc5..fab116e5 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/base/reference/BaseMethodReference.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/base/reference/BaseMethodReference.java
@@ -66,6 +66,6 @@ public abstract class BaseMethodReference implements MethodReference {
if (res != 0) return res;
res = getReturnType().compareTo(o.getReturnType());
if (res != 0) return res;
- return CollectionUtils.compareAsList(getParameters(), o.getParameters());
+ return CollectionUtils.compareAsIterable(getParameters(), o.getParameters());
}
}
diff --git a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/FixedSizeList.java b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/FixedSizeList.java
index b2d6873b..b93a1205 100644
--- a/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/FixedSizeList.java
+++ b/dexlib2/src/main/java/org/jf/dexlib2/dexbacked/util/FixedSizeList.java
@@ -41,7 +41,7 @@ import java.util.AbstractList;
public abstract class FixedSizeList<T> extends AbstractList<T> {
@Override
public T get(int index) {
- if (index < 0 || index > size()) {
+ if (index < 0 || index >= size()) {
throw new IndexOutOfBoundsException();
}
return readItem(index);
diff --git a/util/src/main/java/org/jf/util/CollectionUtils.java b/util/src/main/java/org/jf/util/CollectionUtils.java
index 84de6953..23e23dc9 100644
--- a/util/src/main/java/org/jf/util/CollectionUtils.java
+++ b/util/src/main/java/org/jf/util/CollectionUtils.java
@@ -77,9 +77,18 @@ public class CollectionUtils {
@Nonnull Iterable<? extends T> it2) {
Iterator<? extends T> elements2 = it2.iterator();
for (T element1: it1) {
- int res = comparator.compare(element1, elements2.next());
+ T element2;
+ try {
+ element2 = elements2.next();
+ } catch (NoSuchElementException ex) {
+ return 1;
+ }
+ int res = comparator.compare(element1, element2);
if (res != 0) return res;
}
+ if (elements2.hasNext()) {
+ return -1;
+ }
return 0;
}
@@ -87,9 +96,18 @@ public class CollectionUtils {
@Nonnull Iterable<? extends T> it2) {
Iterator<? extends T> elements2 = it2.iterator();
for (T element1: it1) {
- int res = element1.compareTo(elements2.next());
+ T element2;
+ try {
+ element2 = elements2.next();
+ } catch (NoSuchElementException ex) {
+ return 1;
+ }
+ int res = element1.compareTo(element2);
if (res != 0) return res;
}
+ if (elements2.hasNext()) {
+ return -1;
+ }
return 0;
}