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);