diff options
author | Ivan Gavrilovic <gavra@google.com> | 2017-11-16 08:29:18 +0000 |
---|---|---|
committer | Ivan Gavrilovic <gavra@google.com> | 2017-11-16 09:40:55 +0000 |
commit | 74c972308ffe8564bdb75ae343b425128a6cfec3 (patch) | |
tree | 2c2e93f2498797eceab97e4798cf6c185c10aa9b | |
parent | 59898630fa3ead11ecbce6a2578ffaa6447b6529 (diff) | |
download | dalvik-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.java | 3 | ||||
-rw-r--r-- | dx/tests/143-interface-methods/StaticDefinition.java | 3 |
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); } } |