Interface IReferenceManager


@Ser public interface IReferenceManager
A manager of cross-references for code and data.
  • Method Details

    • recordInternalReference

      boolean recordInternalReference(long from, long to, ReferenceType type)
      Record a reference from an internal location to an internal location, with default flags
      Returns:
      true if reference was registered, false otherwise (because there is already a reference between these locations)
    • recordInternalReference

      boolean recordInternalReference(long from, long to, ReferenceType type, int flags)
      Record a reference from an internal location to an internal location
      Returns:
      true if reference was registered, false otherwise (because there is already a reference between these locations)
    • recordExternalReference

      boolean recordExternalReference(long from, INativeMethodItem to, ReferenceType type)
      Record a reference from an internal location to an external method, with default flags
      Returns:
      true if reference was registered, false otherwise (because there is already a reference between these locations)
    • recordExternalReference

      boolean recordExternalReference(long from, INativeMethodItem to, ReferenceType type, int flags)
      Record a reference from an internal location to an external method
      Returns:
      true if reference was registered, false otherwise (because there is already a reference between these locations)
    • recordReference

      boolean recordReference(ReferenceLocation from, ReferenceLocation to, ReferenceType type)
      Record a reference between two locations with default flags
      Returns:
      true if reference was registered, false otherwise (because there is already a reference between these locations)
    • recordReference

      boolean recordReference(ReferenceLocation from, ReferenceLocation to, ReferenceType type, int flags)
      Record a reference between two locations. Never null.
      Returns:
      true if reference was registered, false otherwise (because there is already a reference between these locations)
    • getReferencesTo

      Set<? extends IReference> getReferencesTo(long target)
      Get references to an internal location. Never null.
    • getReferencesToExternalMethod

      Set<? extends IReference> getReferencesToExternalMethod(INativeMethodItem to)
      Get references to an external method. Never null.
    • getReferencesTo

      Set<? extends IReference> getReferencesTo(ReferenceLocation to)
      Get references to a location. Never null.
    • getReferencesFrom

      Set<? extends IReference> getReferencesFrom(long from)
      Get references from an internal location. Never null.
    • getReferencesFrom

      Set<? extends IReference> getReferencesFrom(ReferenceLocation from)
      Get references from a location. Never null.
    • unrecordAllReferencesFrom

      boolean unrecordAllReferencesFrom(long from)
      Unrecord all references from an internal location
      Returns:
      true if reference was unrecorded, false otherwise (because there is no such reference)
    • unrecordAllReferencesFrom

      boolean unrecordAllReferencesFrom(ReferenceLocation from)
      Unrecord all references from a location
      Returns:
      true if reference was unrecorded, false otherwise (because there is no such reference)
    • unrecordAllReferencesTo

      boolean unrecordAllReferencesTo(long to)
      Unrecord all references to an internal location
      Returns:
      true if reference was unrecorded, false otherwise (because there is no such reference)
    • unrecordAllReferencesTo

      boolean unrecordAllReferencesTo(ReferenceLocation to)
      Unrecord all references to a location
      Returns:
      true if reference was unrecorded, false otherwise (because there is no such reference)
    • unrecordReference

      boolean unrecordReference(long from, long to)
      Unrecord the reference between two internal locations
      Returns:
      true if reference was unrecorded, false otherwise (because there is no such reference)
    • unrecordReference

      boolean unrecordReference(ReferenceLocation from, ReferenceLocation to)
      Unrecord the reference between two locations
      Returns:
      true if reference was unrecorded, false otherwise (because there is no such reference)