Package soot.jimple.spark.pag
Class VarNode
- java.lang.Object
-
- soot.jimple.spark.pag.Node
-
- soot.jimple.spark.pag.ValNode
-
- soot.jimple.spark.pag.VarNode
-
- All Implemented Interfaces:
Comparable
,ReferenceVariable
,Numberable
- Direct Known Subclasses:
GlobalVarNode
,LocalVarNode
public abstract class VarNode extends ValNode implements Comparable
Represents a simple variable node (Green) in the pointer assignment graph.- Author:
- Ondrej Lhotak
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<SparkField,FieldRefNode>
fields
protected int
finishingNumber
protected boolean
interProcSource
protected boolean
interProcTarget
protected int
numDerefs
protected Object
variable
-
Fields inherited from class soot.jimple.spark.pag.Node
p2set, pag, replacement, type
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(Object o)
Context
context()
FieldRefNode
dot(SparkField field)
Returns the field ref node having this node as its base, and field as its field; null if nonexistent.Collection<FieldRefNode>
getAllFieldRefs()
Returns all field ref nodes having this node as their base.Object
getVariable()
Returns the underlying variable that this node represents.boolean
isInterProcSource()
Returns true if this node is the potential source of a interprocedural assignment edge which may be added during on-the-fly call graph updating.boolean
isInterProcTarget()
Returns true if this node is the potential target of a interprocedural assignment edge which may be added during on-the-fly call graph updating.boolean
isThisPtr()
Returns true if this VarNode represents the THIS pointervoid
setFinishingNumber(int i)
void
setInterProcSource()
Designates this node as the potential source of a interprocedural assignment edge which may be added during on-the-fly call graph updating.void
setInterProcTarget()
Designates this node as the potential target of a interprocedural assignment edge which may be added during on-the-fly call graph updating.
-
-
-
Field Detail
-
variable
protected Object variable
-
fields
protected Map<SparkField,FieldRefNode> fields
-
finishingNumber
protected int finishingNumber
-
interProcTarget
protected boolean interProcTarget
-
interProcSource
protected boolean interProcSource
-
numDerefs
protected int numDerefs
-
-
Method Detail
-
context
public Context context()
-
getAllFieldRefs
public Collection<FieldRefNode> getAllFieldRefs()
Returns all field ref nodes having this node as their base.
-
dot
public FieldRefNode dot(SparkField field)
Returns the field ref node having this node as its base, and field as its field; null if nonexistent.
-
compareTo
public int compareTo(Object o)
- Specified by:
compareTo
in interfaceComparable
-
setFinishingNumber
public void setFinishingNumber(int i)
-
getVariable
public Object getVariable()
Returns the underlying variable that this node represents.
-
setInterProcTarget
public void setInterProcTarget()
Designates this node as the potential target of a interprocedural assignment edge which may be added during on-the-fly call graph updating.
-
isInterProcTarget
public boolean isInterProcTarget()
Returns true if this node is the potential target of a interprocedural assignment edge which may be added during on-the-fly call graph updating.
-
setInterProcSource
public void setInterProcSource()
Designates this node as the potential source of a interprocedural assignment edge which may be added during on-the-fly call graph updating.
-
isInterProcSource
public boolean isInterProcSource()
Returns true if this node is the potential source of a interprocedural assignment edge which may be added during on-the-fly call graph updating.
-
isThisPtr
public boolean isThisPtr()
Returns true if this VarNode represents the THIS pointer
-
-