summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Gavrilovic <gavra@google.com>2017-11-16 08:29:18 +0000
committerIvan Gavrilovic <gavra@google.com>2017-11-16 09:40:55 +0000
commit74c972308ffe8564bdb75ae343b425128a6cfec3 (patch)
tree2c2e93f2498797eceab97e4798cf6c185c10aa9b
parent59898630fa3ead11ecbce6a2578ffaa6447b6529 (diff)
downloaddalvik-74c972308ffe8564bdb75ae343b425128a6cfec3.tar.gz
Do not consider clinit as static interface method
Class initializer should not be considered a static interface method. This caused warnings when dexing any interface with <clinit>. Test: 143-interface-methods Change-Id: I29edc2430d322ac3a8dac1d0f1ba9c8cee2f00fb
-rw-r--r--dx/src/com/android/dx/cf/code/ConcreteMethod.java3
-rw-r--r--dx/tests/143-interface-methods/StaticDefinition.java3
2 files changed, 4 insertions, 2 deletions
diff --git a/dx/src/com/android/dx/cf/code/ConcreteMethod.java b/dx/src/com/android/dx/cf/code/ConcreteMethod.java
index 2210c89af..b544add77 100644
--- a/dx/src/com/android/dx/cf/code/ConcreteMethod.java
+++ b/dx/src/com/android/dx/cf/code/ConcreteMethod.java
@@ -138,7 +138,8 @@ public final class ConcreteMethod implements Method {
* @return true if the method is being defined on an interface.
*/
public final boolean isDefaultOrStaticInterfaceMethod() {
- return (classFile.getAccessFlags() & AccessFlags.ACC_INTERFACE) != 0;
+ return (classFile.getAccessFlags() & AccessFlags.ACC_INTERFACE) != 0
+ && !getNat().isClassInit();
}
/**
diff --git a/dx/tests/143-interface-methods/StaticDefinition.java b/dx/tests/143-interface-methods/StaticDefinition.java
index 1a81738a0..ab82cfc2f 100644
--- a/dx/tests/143-interface-methods/StaticDefinition.java
+++ b/dx/tests/143-interface-methods/StaticDefinition.java
@@ -15,7 +15,8 @@
*/
public interface StaticDefinition {
- public static void printIt(String s) {
+ long createsClinit = System.currentTimeMillis();
+ public static void printIt(String s) {
System.out.println(s);
}
}