Class InstanceKey


  • public class InstanceKey
    extends Object
    An instance key is a static representative of a runtime object. An instance key, if based on a StrongLocalMustAliasAnalysis, is guaranteed to represent a single runtime object within a its declared method. If based on a (non-strong) LocalMustAliasAnalysis, it represents the value of a variable at a single location, which itself can represent multiple runtime objects, if the location is contained in a loop. See Sable TR 2007-8 for details.
    Author:
    Eric Bodden
    • Constructor Detail

      • InstanceKey

        public InstanceKey​(Local local,
                           Stmt stmt,
                           SootMethod owner,
                           LocalMustAliasAnalysis lmaa,
                           LocalMustNotAliasAnalysis lmna)
        Creates a new instance key representing the value stored in local, just before stmt. The identity of the key is defined via lmaa, and its must-not-alias relationship to other keys via lmna.
        Parameters:
        local - the local variable whose value this key represents
        stmt - the statement at which this key represents the value
        owner - the method containing local
        lmaa - a LocalMustAliasAnalysis
        lmna - a LocalMustNotAliasAnalysis
    • Method Detail

      • mustAlias

        public boolean mustAlias​(InstanceKey otherKey)
      • mayNotAlias

        public boolean mayNotAlias​(InstanceKey otherKey)
      • getLocal

        public Local getLocal()
      • haveLocalInformation

        public boolean haveLocalInformation()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • computeHashCode

        protected int computeHashCode()
        (Pre)computes the hash code.
      • isOfReferenceType

        public boolean isOfReferenceType()
      • getStmt

        public Stmt getStmt()