@Test public void withString() { String value = "Ever sift sand through a screen?"; StringReference stringRef = dexBuilder.internStringReference(value); Instruction expected = new BuilderInstruction21c(Opcode.CONST_STRING, REGISTER, stringRef); Instruction actual = ConstantBuilder.buildConstant(value, "Ljava/lang/String;", REGISTER, dexBuilder); testEquals(expected, actual); } }
dexBuilder.internStringReference(string_literal167)));
dexBuilder.internStringReference(string_literal136)));
break; case "Ljava/lang/String;": BuilderStringReference stringRef = dexBuilder.internStringReference(value.toString()); constant = new BuilderInstruction21c(Opcode.CONST_STRING, register, stringRef); break;
@Nullable public BuilderStringReference internNullableStringReference(@Nullable String string) { if (string != null) { return internStringReference(string); } return null; }
@Nullable public BuilderStringReference internNullableStringReference(@Nullable String string) { if (string != null) { return internStringReference(string); } return null; }
@Nullable public BuilderStringReference internNullableStringReference(@Nullable String string) { if (string != null) { return internStringReference(string); } return null; }
@Nonnull public BuilderReference internReference(@Nonnull Reference reference) { if (reference instanceof StringReference) { return internStringReference(((StringReference)reference).getString()); } if (reference instanceof TypeReference) { return internTypeReference(((TypeReference)reference).getType()); } if (reference instanceof MethodReference) { return internMethodReference((MethodReference)reference); } if (reference instanceof FieldReference) { return internFieldReference((FieldReference)reference); } throw new IllegalArgumentException("Could not determine type of reference"); }
@Nonnull public BuilderReference internReference(@Nonnull Reference reference) { if (reference instanceof StringReference) { return internStringReference(((StringReference)reference).getString()); } if (reference instanceof TypeReference) { return internTypeReference(((TypeReference)reference).getType()); } if (reference instanceof MethodReference) { return internMethodReference((MethodReference)reference); } if (reference instanceof FieldReference) { return internFieldReference((FieldReference)reference); } if (reference instanceof MethodProtoReference) { return internMethodProtoReference((MethodProtoReference) reference); } if (reference instanceof CallSiteReference) { return internCallSite((CallSiteReference) reference); } if (reference instanceof MethodHandleReference) { return internMethodHandle((MethodHandleReference) reference); } throw new IllegalArgumentException("Could not determine type of reference"); }
@Nonnull public BuilderReference internReference(@Nonnull Reference reference) { if (reference instanceof StringReference) { return internStringReference(((StringReference)reference).getString()); } if (reference instanceof TypeReference) { return internTypeReference(((TypeReference)reference).getType()); } if (reference instanceof MethodReference) { return internMethodReference((MethodReference)reference); } if (reference instanceof FieldReference) { return internFieldReference((FieldReference)reference); } if (reference instanceof MethodProtoReference) { return internMethodProtoReference((MethodProtoReference) reference); } if (reference instanceof CallSiteReference) { return internCallSite((CallSiteReference) reference); } if (reference instanceof MethodHandleReference) { return internMethodHandle((MethodHandleReference) reference); } throw new IllegalArgumentException("Could not determine type of reference"); }
dexBuilder.internStringReference(string_literal167)));
dexBuilder.internStringReference(string_literal153)));
dexBuilder.internStringReference(string_literal136)));
dexBuilder.internStringReference(string_literal122)));
final StringReference ref = dexBuilder.internStringReference(String.format("%08d", i));
for (int i=0; i<66000; i++) { methodBuilder.addInstruction(new BuilderInstruction21c(Opcode.CONST_STRING, 0, dexBuilder.internStringReference(String.format("%08d", i))));