summaryrefslogtreecommitdiffstats
path: root/jill/src/com/android
diff options
context:
space:
mode:
authormikaelpeltier <mikaelpeltier@google.com>2014-09-11 15:40:42 +0200
committermikaelpeltier <mikaelpeltier@google.com>2014-09-11 15:40:42 +0200
commita1ba5b090c002e864581a107865666bd077a456a (patch)
tree32eee56b613ed714226a9afa5d5e815c7993cfb3 /jill/src/com/android
parent514fff5c3f34d89c9bf27e90fd967e63edcbae92 (diff)
downloadtoolchain_jill-a1ba5b090c002e864581a107865666bd077a456a.zip
toolchain_jill-a1ba5b090c002e864581a107865666bd077a456a.tar.gz
toolchain_jill-a1ba5b090c002e864581a107865666bd077a456a.tar.bz2
Merge method must keep array dimension
Bug: 17462619 Change-Id: I0c4adfc7b7dc2df80a247f5d74c3873d698f4d81
Diffstat (limited to 'jill/src/com/android')
-rw-r--r--jill/src/com/android/jill/frontend/java/analyzer/JillAnalyzer.java6
1 files changed, 5 insertions, 1 deletions
diff --git a/jill/src/com/android/jill/frontend/java/analyzer/JillAnalyzer.java b/jill/src/com/android/jill/frontend/java/analyzer/JillAnalyzer.java
index 772bcc0..34aa756 100644
--- a/jill/src/com/android/jill/frontend/java/analyzer/JillAnalyzer.java
+++ b/jill/src/com/android/jill/frontend/java/analyzer/JillAnalyzer.java
@@ -16,6 +16,8 @@
package com.android.jill.frontend.java.analyzer;
+import com.google.common.base.Strings;
+
import com.android.jill.JillException;
import org.objectweb.asm.Type;
@@ -111,7 +113,9 @@ public class JillAnalyzer extends BasicInterpreter {
if (componentUnion == BasicValue.UNINITIALIZED_VALUE) {
return BasicValue.REFERENCE_VALUE;
}
- return new BasicValue(Type.getType("[" + componentUnion.getType().getDescriptor()));
+ return new BasicValue(Type.getType(
+ Strings.repeat("[", Math.min(type1.getDimensions(), type2.getDimensions()))
+ + componentUnion.getType().getDescriptor()));
}
} else if (type1.getSort() == Type.OBJECT && type2.getSort() == Type.OBJECT) {
if (isKnownNull(type1)) {