diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java index 91f6d4c8..780585b7 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassPool.java @@ -248,18 +248,18 @@ public class BuilderClassPool implements ClassSection getParameterAnnotations( @Nonnull final BuilderMethod method) { - final int lastIndex = CollectionUtils.lastIndexOf(method.getParameters(), HAS_PARAMETER_ANNOTATIONS); + final List parameters = method.getParameters(); + boolean hasParameterAnnotations = Iterables.any(parameters, HAS_PARAMETER_ANNOTATIONS); - if (lastIndex > -1) { + if (hasParameterAnnotations) { return new AbstractForwardSequentialList() { @Nonnull @Override public Iterator iterator() { - return FluentIterable.from(method.getParameters()) - .limit(lastIndex+1) + return FluentIterable.from(parameters) .transform(PARAMETER_ANNOTATIONS).iterator(); } @Override public int size() { - return lastIndex+1; + return parameters.size(); } }; } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java index a6f602ea..61ea02f7 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/pool/ClassPool.java @@ -371,18 +371,18 @@ public class ClassPool implements ClassSection> getParameterAnnotations( @Nonnull final PoolMethod method) { - final int lastIndex = CollectionUtils.lastIndexOf(method.getParameters(), HAS_PARAMETER_ANNOTATIONS); + final List parameters = method.getParameters(); + boolean hasParameterAnnotations = Iterables.any(parameters, HAS_PARAMETER_ANNOTATIONS); - if (lastIndex > -1) { + if (hasParameterAnnotations) { return new AbstractForwardSequentialList>() { @Nonnull @Override public Iterator> iterator() { - return FluentIterable.from(method.getParameters()) - .limit(lastIndex+1) + return FluentIterable.from(parameters) .transform(PARAMETER_ANNOTATIONS).iterator(); } @Override public int size() { - return lastIndex+1; + return parameters.size(); } }; }