From dccca459e9999a2e292c2292f8098f782f5360d6 Mon Sep 17 00:00:00 2001 From: Ben Gruver Date: Thu, 1 Nov 2012 22:41:06 -0700 Subject: [PATCH] Fix some null issues in the immutable implementation --- .../dexlib2/immutable/ImmutableMethodImplementation.java | 6 +++++- .../jf/dexlib2/immutable/value/ImmutableEncodedValue.java | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethodImplementation.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethodImplementation.java index d30b8d6c..e03ba3e9 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethodImplementation.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/ImmutableMethodImplementation.java @@ -70,7 +70,11 @@ public class ImmutableMethodImplementation implements MethodImplementation { this.debugItems = Objects.firstNonNull(debugItems, ImmutableList.of()); } - public static ImmutableMethodImplementation of(MethodImplementation methodImplementation) { + @Nullable + public static ImmutableMethodImplementation of(@Nullable MethodImplementation methodImplementation) { + if (methodImplementation == null) { + return null; + } if (methodImplementation instanceof ImmutableMethodImplementation) { return (ImmutableMethodImplementation)methodImplementation; } diff --git a/dexlib2/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValue.java b/dexlib2/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValue.java index 32e06831..c65fff91 100644 --- a/dexlib2/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValue.java +++ b/dexlib2/src/main/java/org/jf/dexlib2/immutable/value/ImmutableEncodedValue.java @@ -38,6 +38,7 @@ import org.jf.dexlib2.iface.value.*; import org.jf.util.ImmutableListConverter; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import java.util.List; public class ImmutableEncodedValue implements EncodedValue { @@ -47,7 +48,11 @@ public class ImmutableEncodedValue implements EncodedValue { this.type = type; } - public static ImmutableEncodedValue of(EncodedValue encodedValue) { + @Nullable + public static ImmutableEncodedValue of(@Nullable EncodedValue encodedValue) { + if (encodedValue == null) { + return null; + } switch (encodedValue.getValueType()) { case ValueType.BYTE: return ImmutableByteEncodedValue.of((ByteEncodedValue)encodedValue);