Class AllocNode

java.lang.Object
qilin.core.pag.PagNode
qilin.core.pag.AllocNode
All Implemented Interfaces:
ContextElement, Numberable
Direct Known Subclasses:
ConstantNode, ContextAllocNode, LambdaAllocNode

public class AllocNode extends PagNode implements ContextElement, Numberable
Represents an allocation site node in the pointer assignment graph.
Author:
Ondrej Lhotak
  • Field Details

    • newExpr

      protected Object newExpr
  • Constructor Details

  • Method Details

    • getNewExpr

      public Object getNewExpr()
      Returns the new expression of this allocation site. This is usually a Jimple Value (e.g. JNewExpr, JNewArrayExpr), but for synthetic allocation sites (heap merging, the root node, ...) it can also be a plain String label or another sentinel object. Use getAllocationExpr() if you only care about the common "real expression" case.
    • getAllocationExpr

      public Value getAllocationExpr()
      Returns this allocation site's expression as a Jimple Value, or null if the underlying object is a synthetic sentinel (e.g. a merged/root heap label) rather than a real expression — see getNewExpr().
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getMethod

      public SootMethod getMethod()
    • base

      public AllocNode base()
    • isEmptyArray

      public boolean isEmptyArray()
      True if this allocation site is a new T[0]-shaped, statically-empty array.
    • parameterize

      public PagNode parameterize(Parameterizer parameterizer, Context context)
      Description copied from class: PagNode
      Turns this node into its context-sensitive counterpart by calling back into the matching overload of parameterizer. 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:
      parameterize in class PagNode