From f6958ae4bc66ec338f5547ef3952896e219e6c33 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Sun, 10 Nov 2013 21:16:05 -0800 Subject: [PATCH] Don't trim empty parameter annotations --- .../jf/dexlib2/writer/builder/BuilderClassPool.java | 10 +++++----- .../java/org/jf/dexlib2/writer/pool/ClassPool.java | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) 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(); } }; }