From d4523c4e539e550079f5be767404f9a5ef152c15 Mon Sep 17 00:00:00 2001 From: Skylot Date: Sun, 29 Mar 2015 14:43:44 +0300 Subject: [PATCH] core: remove 'static' modifier for inner interfaces --- jadx-core/src/main/java/jadx/core/codegen/ClassGen.java | 3 ++- jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java | 5 ++--- .../src/test/java/jadx/tests/integration/TestClassGen.java | 4 ++-- .../jadx/tests/integration/annotations/TestAnnotations2.java | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java index 762652407..f8d240564 100644 --- a/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java +++ b/jadx-core/src/main/java/jadx/core/codegen/ClassGen.java @@ -119,7 +119,8 @@ public class ClassGen { public void addClassDeclaration(CodeWriter clsCode) { AccessInfo af = cls.getAccessFlags(); if (af.isInterface()) { - af = af.remove(AccessFlags.ACC_ABSTRACT); + af = af.remove(AccessFlags.ACC_ABSTRACT) + .remove(AccessFlags.ACC_STATIC); } else if (af.isEnum()) { af = af.remove(AccessFlags.ACC_FINAL) .remove(AccessFlags.ACC_ABSTRACT) diff --git a/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java b/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java index c89058e83..11a9e521a 100644 --- a/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java +++ b/jadx-core/src/main/java/jadx/core/dex/info/AccessInfo.java @@ -25,10 +25,9 @@ public class AccessInfo { public AccessInfo remove(int flag) { if (containsFlag(flag)) { - return new AccessInfo(accFlags - flag, type); - } else { - return this; + return new AccessInfo(accFlags & ~flag, type); } + return this; } public AccessInfo getVisibility() { diff --git a/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java b/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java index 5e36eccc7..146320558 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java +++ b/jadx-core/src/test/java/jadx/tests/integration/TestClassGen.java @@ -12,7 +12,7 @@ import static org.junit.Assert.assertThat; public class TestClassGen extends IntegrationTest { public static class TestCls { - public static interface I { + public interface I { int test(); public int test3(); @@ -28,7 +28,7 @@ public class TestClassGen extends IntegrationTest { ClassNode cls = getClassNode(TestCls.class); String code = cls.getCode().toString(); - assertThat(code, containsString("public static interface I {")); + assertThat(code, containsString("public interface I {")); assertThat(code, containsString(indent(2) + "int test();")); assertThat(code, not(containsString("public int test();"))); assertThat(code, containsString(indent(2) + "int test3();")); diff --git a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java index 0ba8a4b6b..5d2269d9a 100644 --- a/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java +++ b/jadx-core/src/test/java/jadx/tests/integration/annotations/TestAnnotations2.java @@ -19,7 +19,7 @@ public class TestAnnotations2 extends IntegrationTest { @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) - public static @interface A { + public @interface A { int i(); float f(); @@ -33,7 +33,7 @@ public class TestAnnotations2 extends IntegrationTest { assertThat(code, containsString("@Target({ElementType.TYPE})")); assertThat(code, containsString("@Retention(RetentionPolicy.RUNTIME)")); - assertThat(code, containsString("public static @interface A {")); + assertThat(code, containsString("public @interface A {")); assertThat(code, containsString("float f();")); assertThat(code, containsString("int i();")); }