Revert "Output fields in smali disassembler"
This reverts commit 91508d66f9b6bda7576574522ef05bbf0e86e061.
Reason for revert: Test failures
Change-Id: Ie6e24c10d2fdf0bb1ca082e09ffdead7ccb6db90
diff --git a/src/main/java/com/android/tools/r8/Disassemble.java b/src/main/java/com/android/tools/r8/Disassemble.java
index 6f68e5b..7c4ac49 100644
--- a/src/main/java/com/android/tools/r8/Disassemble.java
+++ b/src/main/java/com/android/tools/r8/Disassemble.java
@@ -243,7 +243,7 @@
new ApplicationReader(app, options, timing).read(command.proguardMap, executor);
DexByteCodeWriter writer =
command.useSmali()
- ? new SmaliWriter(application, options, !command.noCode())
+ ? new SmaliWriter(application, options)
: new AssemblyWriter(
application, options, command.allInfo, command.useIr(), !command.noCode());
if (command.getOutputPath() != null) {
diff --git a/src/main/java/com/android/tools/r8/graph/AssemblyWriter.java b/src/main/java/com/android/tools/r8/graph/AssemblyWriter.java
index a583683..4ed66d8 100644
--- a/src/main/java/com/android/tools/r8/graph/AssemblyWriter.java
+++ b/src/main/java/com/android/tools/r8/graph/AssemblyWriter.java
@@ -116,19 +116,10 @@
}
@Override
- void writeInstanceFieldsHeader(DexProgramClass clazz, PrintStream ps) {
+ void writeFieldsHeader(DexProgramClass clazz, PrintStream ps) {
if (writeFields) {
ps.println("#");
- ps.println("# Instance fields:");
- ps.println("#");
- }
- }
-
- @Override
- void writeStaticFieldsHeader(DexProgramClass clazz, PrintStream ps) {
- if (writeFields) {
- ps.println("#");
- ps.println("# Static fields:");
+ ps.println("# Fields:");
ps.println("#");
}
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexByteCodeWriter.java b/src/main/java/com/android/tools/r8/graph/DexByteCodeWriter.java
index 8cb22f1..60ab622 100644
--- a/src/main/java/com/android/tools/r8/graph/DexByteCodeWriter.java
+++ b/src/main/java/com/android/tools/r8/graph/DexByteCodeWriter.java
@@ -89,10 +89,8 @@
private void writeClass(DexProgramClass clazz, PrintStream ps) {
writeClassHeader(clazz, ps);
- writeStaticFieldsHeader(clazz, ps);
- clazz.forEachFieldMatching(DexEncodedMember::isStatic, field -> writeField(field, ps));
- writeInstanceFieldsHeader(clazz, ps);
- clazz.forEachFieldMatching(DexEncodedMember::isInstance, field -> writeField(field, ps));
+ writeFieldsHeader(clazz, ps);
+ clazz.forEachField(field -> writeField(field, ps));
writeFieldsFooter(clazz, ps);
writeMethodsHeader(clazz, ps);
clazz.forEachProgramMethod(method -> writeMethod(method, ps));
@@ -104,11 +102,7 @@
abstract void writeClassHeader(DexProgramClass clazz, PrintStream ps);
- void writeInstanceFieldsHeader(DexProgramClass clazz, PrintStream ps) {
- // Do nothing.
- }
-
- void writeStaticFieldsHeader(DexProgramClass clazz, PrintStream ps) {
+ void writeFieldsHeader(DexProgramClass clazz, PrintStream ps) {
// Do nothing.
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedField.java b/src/main/java/com/android/tools/r8/graph/DexEncodedField.java
index 5cf7530..ada1c8a 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedField.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedField.java
@@ -20,11 +20,8 @@
import com.android.tools.r8.ir.optimize.info.MutableFieldOptimizationInfo;
import com.android.tools.r8.ir.optimize.info.OptimizationFeedbackSimple;
import com.android.tools.r8.kotlin.KotlinFieldLevelInfo;
-import com.android.tools.r8.naming.ClassNameMapper;
-import com.android.tools.r8.naming.MemberNaming.FieldSignature;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.ConsumerUtils;
-import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.structural.StructuralItem;
import com.android.tools.r8.utils.structural.StructuralMapping;
import com.android.tools.r8.utils.structural.StructuralSpecification;
@@ -169,29 +166,7 @@
@Override
public String toSmaliString() {
- StringBuilder builder = new StringBuilder();
- builder.append(".field ");
- builder.append(accessFlags.toSmaliString());
- builder.append(" ");
- builder.append(getName().toSmaliString());
- builder.append(":");
- builder.append(getType().toSmaliString());
- return builder.toString();
- }
-
- public String toSmaliString(ClassNameMapper naming) {
- FieldSignature fieldSignature =
- naming != null
- ? naming.originalSignatureOf(getReference())
- : FieldSignature.fromDexField(getReference());
- StringBuilder builder = new StringBuilder();
- builder.append(".field ");
- builder.append(accessFlags.toSmaliString());
- builder.append(" ");
- builder.append(fieldSignature.getName());
- builder.append(":");
- builder.append(DescriptorUtils.javaTypeToDescriptor(fieldSignature.getTypeName()));
- return builder.toString();
+ return getReference().toSmaliString();
}
@Override
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMember.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMember.java
index b68c45b..e1bb25e 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMember.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMember.java
@@ -57,10 +57,6 @@
return this;
}
- public final boolean isInstance() {
- return !isStatic();
- }
-
public final boolean isPrivate() {
return getAccessFlags().isPrivate();
}
diff --git a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
index ff92837..6bd54aa 100644
--- a/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
+++ b/src/main/java/com/android/tools/r8/graph/DexEncodedMethod.java
@@ -594,6 +594,10 @@
return (accessFlags.isPrivate() || accessFlags.isConstructor()) && !accessFlags.isStatic();
}
+ public boolean isInstance() {
+ return !isStatic();
+ }
+
@Override
public boolean isStatic() {
checkIfObsolete();
@@ -892,10 +896,6 @@
}
public String toSmaliString(ClassNameMapper naming) {
- return toSmaliString(naming, true);
- }
-
- public String toSmaliString(ClassNameMapper naming, boolean writeCode) {
checkIfObsolete();
StringBuilder builder = new StringBuilder();
builder.append(".method ");
@@ -904,7 +904,7 @@
builder.append(getReference().name.toSmaliString());
builder.append(getReference().proto.toSmaliString());
builder.append("\n");
- if (writeCode && hasCode()) {
+ if (code != null) {
DexCode dexCode = code.asDexCode();
builder.append(" .registers ");
builder.append(dexCode.registerSize);
diff --git a/src/main/java/com/android/tools/r8/graph/SmaliWriter.java b/src/main/java/com/android/tools/r8/graph/SmaliWriter.java
index f98ef60..e676697 100644
--- a/src/main/java/com/android/tools/r8/graph/SmaliWriter.java
+++ b/src/main/java/com/android/tools/r8/graph/SmaliWriter.java
@@ -16,11 +16,9 @@
public class SmaliWriter extends DexByteCodeWriter {
- private final boolean writeCode;
-
- public SmaliWriter(DexApplication application, InternalOptions options, boolean writeCode) {
+ public SmaliWriter(DexApplication application,
+ InternalOptions options) {
super(application, options);
- this.writeCode = writeCode;
}
/** Return smali source for the application code. */
@@ -29,7 +27,7 @@
try (PrintStream ps = new PrintStream(os)) {
DexApplication dexApplication =
new ApplicationReader(application, options, Timing.empty()).read();
- SmaliWriter writer = new SmaliWriter(dexApplication, options, true);
+ SmaliWriter writer = new SmaliWriter(dexApplication, options);
writer.write(ps);
} catch (IOException e) {
throw new CompilationError("Failed to generate smali sting", e);
@@ -48,25 +46,17 @@
ps.append(clazz.accessFlags.toSmaliString());
ps.append(" ");
ps.append(clazz.type.toSmaliString());
- ps.append('\n');
-
+ ps.append("\n\n");
if (clazz.type != application.dexItemFactory.objectType) {
ps.append(".super ");
ps.append(clazz.superType.toSmaliString());
- ps.append('\n');
- }
- ps.append('\n');
-
- if (!clazz.getInterfaces().isEmpty()) {
- ps.append("# interfaces").append('\n');
+ ps.append("\n");
for (DexType iface : clazz.interfaces.values) {
ps.append(".implements ");
ps.append(iface.toSmaliString());
- ps.append('\n');
+ ps.append("\n");
}
- ps.append('\n');
}
- ps.append('\n');
}
@Override
@@ -74,35 +64,17 @@
ps.append("# End of class ");
ps.append(clazz.type.toSmaliString());
ps.append("\n");
- ps.append("\n");
}
@Override
void writeMethod(ProgramMethod method, PrintStream ps) {
ps.append("\n");
- ps.append(method.getDefinition().toSmaliString(application.getProguardMap(), writeCode));
+ ps.append(method.getDefinition().toSmaliString(application.getProguardMap()));
ps.append("\n");
}
@Override
- void writeInstanceFieldsHeader(DexProgramClass clazz, PrintStream ps) {
- if (clazz.hasStaticFields()) {
- ps.append('\n');
- }
- if (clazz.hasInstanceFields()) {
- ps.append("# instance fields").append('\n');
- }
- }
-
- @Override
- void writeStaticFieldsHeader(DexProgramClass clazz, PrintStream ps) {
- if (clazz.hasStaticFields()) {
- ps.append("# static fields").append('\n');
- }
- }
-
- @Override
void writeField(DexEncodedField field, PrintStream ps) {
- ps.append(field.toSmaliString(application.getProguardMap())).append('\n').append('\n');
+ // Not yet implemented.
}
}
diff --git a/src/main/java/com/android/tools/r8/naming/MemberNaming.java b/src/main/java/com/android/tools/r8/naming/MemberNaming.java
index 1d024b3..bf0a8dd 100644
--- a/src/main/java/com/android/tools/r8/naming/MemberNaming.java
+++ b/src/main/java/com/android/tools/r8/naming/MemberNaming.java
@@ -187,14 +187,6 @@
field.type.toSourceString());
}
- public String getName() {
- return name;
- }
-
- public String getTypeName() {
- return type;
- }
-
public DexField toDexField(DexItemFactory factory, DexType clazz) {
return factory.createField(
clazz,