Class DexBackedCallSiteReference

All Implemented Interfaces:
CallSiteReference, Reference

public class DexBackedCallSiteReference extends BaseCallSiteReference
  • Field Details

    • dexFile

      @Nonnull public final DexBackedDexFile dexFile
    • callSiteIndex

      public final int callSiteIndex
    • callSiteIdOffset

      public final int callSiteIdOffset
    • callSiteOffset

      private int callSiteOffset
  • Constructor Details

    • DexBackedCallSiteReference

      public DexBackedCallSiteReference(DexBackedDexFile dexFile, int callSiteIndex)
  • Method Details

    • getName

      @Nonnull public String getName()
      Description copied from interface: CallSiteReference
      Gets a name for this call site. This is an arbitrary synthetic string that serves to differentiate call sites that would otherwise be identical. It can be any arbitrary string, with the only requirement being that 2 different, but otherwise identical call sites in the same dex file must not share the same name. Multiple non-identical call sites may use the same name however.
      Returns:
      The name for this call site.
    • getMethodHandle

      @Nonnull public MethodHandleReference getMethodHandle()
      Description copied from interface: CallSiteReference
      Gets a reference to a method handle for the bootstrap linker method
      Returns:
      A MethodHandleReference to the bootstrap linker method
    • getMethodName

      @Nonnull public String getMethodName()
      Returns:
      A method name that the bootstrap linker should resolve.
    • getMethodProto

      @Nonnull public MethodProtoReference getMethodProto()
      Returns:
      A MethodProtoReference corresponding to the prototype of the method that the bootstrap linker should resolve
    • getExtraArguments

      @Nonnull public List<? extends EncodedValue> getExtraArguments()
      Returns:
      A list of extra arguments to pass to the bootstrap linker
    • getCallSiteIterator

      private EncodedArrayItemIterator getCallSiteIterator()
    • getCallSiteOffset

      private int getCallSiteOffset()
    • validateReference

      public void validateReference() throws Reference.InvalidReferenceException
      Description copied from interface: Reference
      Verifies that this reference is valid.
      Specified by:
      validateReference in interface Reference
      Overrides:
      validateReference in class BaseReference
      Throws:
      Reference.InvalidReferenceException - If the reference is not valid.