@Nonnull @Override public MethodProtoReference getValue() { return new DexBackedMethodProtoReference(dexFile, methodProtoIndex); } }
@Nonnull @Override public MethodProtoReference getValue() { return new DexBackedMethodProtoReference(dexFile, methodProtoIndex); } }
public static Reference makeReference(@Nonnull DexBackedDexFile dexFile, int referenceType, int referenceIndex) { switch (referenceType) { case ReferenceType.STRING: return new DexBackedStringReference(dexFile, referenceIndex); case ReferenceType.TYPE: return new DexBackedTypeReference(dexFile, referenceIndex); case ReferenceType.METHOD: return new DexBackedMethodReference(dexFile, referenceIndex); case ReferenceType.FIELD: return new DexBackedFieldReference(dexFile, referenceIndex); case ReferenceType.METHOD_PROTO: return new DexBackedMethodProtoReference(dexFile, referenceIndex); case ReferenceType.METHOD_HANDLE: return new DexBackedMethodHandleReference(dexFile, referenceIndex); case ReferenceType.CALL_SITE: return new DexBackedCallSiteReference(dexFile, referenceIndex); default: throw new ExceptionWithContext("Invalid reference type: %d", referenceType); } } }
public static Reference makeReference(@Nonnull DexBackedDexFile dexFile, int referenceType, int referenceIndex) { switch (referenceType) { case ReferenceType.STRING: return new DexBackedStringReference(dexFile, referenceIndex); case ReferenceType.TYPE: return new DexBackedTypeReference(dexFile, referenceIndex); case ReferenceType.METHOD: return new DexBackedMethodReference(dexFile, referenceIndex); case ReferenceType.FIELD: return new DexBackedFieldReference(dexFile, referenceIndex); case ReferenceType.METHOD_PROTO: return new DexBackedMethodProtoReference(dexFile, referenceIndex); case ReferenceType.METHOD_HANDLE: return new DexBackedMethodHandleReference(dexFile, referenceIndex); case ReferenceType.CALL_SITE: return new DexBackedCallSiteReference(dexFile, referenceIndex); default: throw new ExceptionWithContext("Invalid reference type: %d", referenceType); } } }