Fix DAsm to use CstString rather than CstUtf8.
git cherry-pick --no-commit b8b77836143c6ac6bfbea97d692c45e1f7a21566
Change-Id: I23dfa3d8d4f3efdd5c6c0ddf255a06d65553ec4a
diff --git a/tools/dasm/src/dasm/DAsm.java b/tools/dasm/src/dasm/DAsm.java
index e5f5ead..d14d74a 100644
--- a/tools/dasm/src/dasm/DAsm.java
+++ b/tools/dasm/src/dasm/DAsm.java
@@ -52,7 +52,6 @@
import com.android.dx.rop.cst.CstShort;
import com.android.dx.rop.cst.CstString;
import com.android.dx.rop.cst.CstType;
-import com.android.dx.rop.cst.CstUtf8;
import com.android.dx.rop.type.StdTypeList;
import com.android.dx.rop.type.Type;
import com.android.dx.rop.type.TypeList;
@@ -147,7 +146,7 @@
* output_finisher.
*/
int current_insn_number;
- Hashtable<Integer, CodeAddress> unprocessed_relative_goto_addr =
+ Hashtable<Integer, CodeAddress> unprocessed_relative_goto_addr =
new Hashtable<Integer, CodeAddress>();
// fill-array-data data
@@ -329,7 +328,7 @@
.internClassName(class_name)), class_acc,
superclass_name != null ? CstType.intern(Type
.internClassName(superclass_name)) : null, tl,
- new CstUtf8(source_name));
+ new CstString(source_name));
dexFile.add(classDef);
class_header = false;
}
@@ -367,7 +366,7 @@
+ ", " + access + ", "
+ (value == null ? "null" : value.toString()) + ")");
- CstNat nat = new CstNat(new CstUtf8(name), new CstUtf8(desc));
+ CstNat nat = new CstNat(new CstString(name), new CstString(desc));
CstFieldRef field = new CstFieldRef(classDef.getThisClass(), nat);
EncodedField ef = new EncodedField(field, access);
if ((access & AccessFlags.ACC_STATIC) != 0) {
@@ -403,7 +402,7 @@
current_insn_number = 0;
regs_count = 1;
- method_nat = new CstNat(new CstUtf8(name), new CstUtf8(descriptor));
+ method_nat = new CstNat(new CstString(name), new CstString(descriptor));
if (method_nat.isClassInit()) access |= AccessFlags.ACC_STATIC;
if (method_nat.isInstanceInit()) access |= AccessFlags.ACC_CONSTRUCTOR;
@@ -678,7 +677,7 @@
+ v1 + ")");
}
RegisterSpec reg1_spec = RegisterSpec.make(reg1_num, Type.STRING);
- Constant constant = new CstString(new CstUtf8(v2));
+ Constant constant = new CstString(v2);
DalvInsn dalvInsn = new CstInsn(insn.opcode,
createSourcePosition(), RegisterSpecList.make(reg1_spec),
constant);
@@ -748,8 +747,8 @@
} else {
// invoke-kind
String[] names = Utils.getClassMethodSignatureFromString(v2);
- CstNat method_nat = new CstNat(new CstUtf8(names[1]),
- new CstUtf8(names[2]));
+ CstNat method_nat = new CstNat(new CstString(names[1]),
+ new CstString(names[2]));
/*
* if(insn.args.compareToIgnoreCase(
@@ -822,8 +821,8 @@
} else {
// invoke-kind/range
String[] names = Utils.getClassMethodSignatureFromString(v2);
- CstNat method_nat = new CstNat(new CstUtf8(names[1]),
- new CstUtf8(names[2]));
+ CstNat method_nat = new CstNat(new CstString(names[1]),
+ new CstString(names[2]));
/*
* if(insn.args.compareToIgnoreCase(
@@ -922,7 +921,7 @@
reg1_spec = RegisterSpec.make(reg1_num, Type.FLOAT);
constant = CstFloat.make(Float.floatToIntBits(v2.floatValue()));
} else if (v2 instanceof Double
- || (v2 instanceof Float &&
+ || (v2 instanceof Float &&
insn.opcode.getFormat() == Form51l.THE_ONE)) {
reg1_spec = RegisterSpec.make(reg1_num, Type.DOUBLE);
constant = CstDouble.make(Double.doubleToLongBits(v2
@@ -1033,8 +1032,8 @@
String[] names = Utils.getClassFieldFromString(v2);
- CstNat field_nat = new CstNat(new CstUtf8(names[1]),
- new CstUtf8(v3));
+ CstNat field_nat = new CstNat(new CstString(names[1]),
+ new CstString(v3));
Constant constant = new CstFieldRef(CstType.intern(Type
.internClassName(names[0])), field_nat);
@@ -1105,8 +1104,8 @@
String[] names = Utils.getClassFieldFromString(v3);
- CstNat field_nat = new CstNat(new CstUtf8(names[1]),
- new CstUtf8(v4));
+ CstNat field_nat = new CstNat(new CstString(names[1]),
+ new CstString(v4));
Constant constant = new CstFieldRef(CstType.intern(Type
.internClassName(names[0])), field_nat);
@@ -1495,7 +1494,7 @@
* Creates instance of SourcePosition for current line
*/
protected SourcePosition createSourcePosition() {
- return new SourcePosition(new CstUtf8(filename), -1, line_num);
+ return new SourcePosition(new CstString(filename), -1, line_num);
}
/**
@@ -1580,7 +1579,7 @@
* Parses a .d file, converting it internally into a binary representation.
* If something goes wrong, this throws one of an IOException, or a
* dasmError, or one of a few other exceptions.
- *
+ *
* @param input
* is the stream containing the Dalvik assembly code for the
* class.