Fix a deodex issue when merging an unresolved array type
diff --git a/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/ClassPath.java b/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/ClassPath.java
index 96878d9..d3f5cdc 100644
--- a/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/ClassPath.java
+++ b/dexlib/src/main/java/org/jf/dexlib/Code/Analysis/ClassPath.java
@@ -402,7 +402,13 @@
//if the two arrays have the same number of dimensions, then we should return an array class with the
//same number of dimensions, for the common superclass of the 2 element classes
if (class1.arrayDimensions == class2.arrayDimensions) {
- ClassDef commonElementClass = getCommonSuperclass(class1.elementClass, class2.elementClass);
+ ClassDef commonElementClass;
+ if (class1.elementClass instanceof UnresolvedClassDef ||
+ class2.elementClass instanceof UnresolvedClassDef) {
+ commonElementClass = ClassPath.getUnresolvedObjectClassDef();
+ } else {
+ commonElementClass = getCommonSuperclass(class1.elementClass, class2.elementClass);
+ }
return getArrayClassDefByElementClassAndDimension(commonElementClass, class1.arrayDimensions);
}