From 6926ece0cd35d0b34ca66db6f64fdb45e2fac544 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Thu, 10 Oct 2013 19:46:02 -0700 Subject: [PATCH] Check for null before using Iterables.filter --- .../dexlib2/immutable/ImmutableClassDef.java | 12 ++++++--- .../writer/builder/BuilderClassDef.java | 25 ++++++++----------- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableClassDef.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableClassDef.java index a23b90a3..42e14549 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableClassDef.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableClassDef.java @@ -31,10 +31,7 @@ package org.jf.dexlib2.immutable; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.ImmutableSortedSet; -import com.google.common.collect.Iterables; -import com.google.common.collect.Iterators; +import com.google.common.collect.*; import org.jf.dexlib2.base.reference.BaseTypeReference; import org.jf.dexlib2.iface.Annotation; import org.jf.dexlib2.iface.ClassDef; @@ -71,6 +68,13 @@ public class ImmutableClassDef extends BaseTypeReference implements ClassDef { @Nullable Collection annotations, @Nullable Iterable fields, @Nullable Iterable methods) { + if (fields == null) { + fields = ImmutableList.of(); + } + if (methods == null) { + methods = ImmutableList.of(); + } + this.type = type; this.accessFlags = accessFlags; this.superclass = superclass; diff --git a/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassDef.java b/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassDef.java index fd5cc540..46e75ce0 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassDef.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/writer/builder/BuilderClassDef.java @@ -67,26 +67,23 @@ public class BuilderClassDef extends BaseTypeReference implements ClassDef { @Nonnull BuilderAnnotationSet annotations, @Nullable Iterable fields, @Nullable Iterable methods) { + if (fields == null) { + fields = ImmutableList.of(); + } + if (methods == null) { + methods = ImmutableList.of(); + } + this.type = type; this.accessFlags = accessFlags; this.superclass = superclass; this.interfaces = interfaces; this.sourceFile = sourceFile; this.annotations = annotations; - if (fields == null) { - this.staticFields = ImmutableSortedSet.of(); - this.instanceFields = ImmutableSortedSet.of(); - } else { - this.staticFields = ImmutableSortedSet.copyOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC)); - this.instanceFields = ImmutableSortedSet.copyOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE)); - } - if (methods == null) { - this.directMethods = ImmutableSortedSet.of(); - this.virtualMethods = ImmutableSortedSet.of(); - } else { - this.directMethods = ImmutableSortedSet.copyOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT)); - this.virtualMethods = ImmutableSortedSet.copyOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL)); - } + this.staticFields = ImmutableSortedSet.copyOf(Iterables.filter(fields, FieldUtil.FIELD_IS_STATIC)); + this.instanceFields = ImmutableSortedSet.copyOf(Iterables.filter(fields, FieldUtil.FIELD_IS_INSTANCE)); + this.directMethods = ImmutableSortedSet.copyOf(Iterables.filter(methods, MethodUtil.METHOD_IS_DIRECT)); + this.virtualMethods = ImmutableSortedSet.copyOf(Iterables.filter(methods, MethodUtil.METHOD_IS_VIRTUAL)); } @Nonnull @Override public String getType() { return type.getType(); }