Package soot.jimple.toolkits.pointer
Class InstanceKey
- java.lang.Object
-
- soot.jimple.toolkits.pointer.InstanceKey
-
public class InstanceKey extends Object
An instance key is a static representative of a runtime object. An instance key, if based on aStrongLocalMustAliasAnalysis, 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
-
-
Field Summary
Fields Modifier and Type Field Description protected LocalassignedLocalprotected inthashCodeprotected LocalMustAliasAnalysislmaaprotected LocalMustNotAliasAnalysislnmaprotected SootMethodownerprotected PointsToSetptsprotected StmtstmtAfterAssignStmt
-
Constructor Summary
Constructors Constructor Description 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.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected intcomputeHashCode()(Pre)computes the hash code.booleanequals(Object obj)LocalgetLocal()SootMethodgetOwner()PointsToSetgetPointsToSet()StmtgetStmt()inthashCode()booleanhaveLocalInformation()booleanisOfReferenceType()booleanmayNotAlias(InstanceKey otherKey)booleanmustAlias(InstanceKey otherKey)StringtoString()
-
-
-
Field Detail
-
assignedLocal
protected final Local assignedLocal
-
lmaa
protected final LocalMustAliasAnalysis lmaa
-
lnma
protected final LocalMustNotAliasAnalysis lnma
-
stmtAfterAssignStmt
protected final Stmt stmtAfterAssignStmt
-
owner
protected final SootMethod owner
-
hashCode
protected final int hashCode
-
pts
protected final PointsToSet pts
-
-
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 representsstmt- the statement at which this key represents the valueowner- the method containing locallmaa- aLocalMustAliasAnalysislmna- aLocalMustNotAliasAnalysis
-
-
Method Detail
-
mustAlias
public boolean mustAlias(InstanceKey otherKey)
-
mayNotAlias
public boolean mayNotAlias(InstanceKey otherKey)
-
getPointsToSet
public PointsToSet getPointsToSet()
-
getLocal
public Local getLocal()
-
haveLocalInformation
public boolean haveLocalInformation()
-
computeHashCode
protected int computeHashCode()
(Pre)computes the hash code.
-
isOfReferenceType
public boolean isOfReferenceType()
-
getOwner
public SootMethod getOwner()
-
getStmt
public Stmt getStmt()
-
-