Package qilin.core.pag
Class AllocNode
java.lang.Object
qilin.core.pag.PagNode
qilin.core.pag.AllocNode
- All Implemented Interfaces:
ContextElement,Numberable
- Direct Known Subclasses:
ConstantNode,ContextAllocNode,LambdaAllocNode
Represents an allocation site node in the pointer assignment graph.
- Author:
- Ondrej Lhotak
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbase()Returns this allocation site's expression as a JimpleValue, ornullif the underlying object is a synthetic sentinel (e.g. a merged/root heap label) rather than a real expression — seegetNewExpr().Returns the new expression of this allocation site.booleanTrue if this allocation site is anew T[0]-shaped, statically-empty array.parameterize(Parameterizer parameterizer, Context context) Turns this node into its context-sensitive counterpart by calling back into the matching overload ofparameterizer.toString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface qilin.core.context.ContextElement
equals, hashCodeMethods inherited from interface qilin.util.Numberable
getNumber, setNumber
-
Field Details
-
newExpr
-
-
Constructor Details
-
AllocNode
-
-
Method Details
-
getNewExpr
Returns the new expression of this allocation site. This is usually a JimpleValue(e.g.JNewExpr,JNewArrayExpr), but for synthetic allocation sites (heap merging, the root node, ...) it can also be a plainStringlabel or another sentinel object. UsegetAllocationExpr()if you only care about the common "real expression" case. -
getAllocationExpr
Returns this allocation site's expression as a JimpleValue, ornullif the underlying object is a synthetic sentinel (e.g. a merged/root heap label) rather than a real expression — seegetNewExpr(). -
toString
-
getMethod
-
base
-
isEmptyArray
public boolean isEmptyArray()True if this allocation site is anew T[0]-shaped, statically-empty array. -
parameterize
Description copied from class:PagNodeTurns this node into its context-sensitive counterpart by calling back into the matching overload ofparameterizer. Only the node kinds that can actually be parameterized (LocalVarNode,FieldRefNode,AllocNode,FieldValNode,GlobalVarNode) override this; every other node kind is not meant to reach a context parameterization step, so the default fails loudly instead of silently doing nothing.- Overrides:
parameterizein classPagNode
-