Class

org.argus.jawa.alir.pta.suspark

PointerAssignmentGraph

Related Doc: package suspark

Permalink

class PointerAssignmentGraph[Node <: PtaNode] extends InterproceduralGraph[Node] with PAGConstraint

Self Type
PointerAssignmentGraph[Node]
Linear Supertypes
PAGConstraint, InterproceduralGraph[Node], Serializable, Serializable, AlirSuccPredAccesses[Node], AlirEdgeAccesses[Node], AlirGraph[Node], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. PointerAssignmentGraph
  2. PAGConstraint
  3. InterproceduralGraph
  4. Serializable
  5. Serializable
  6. AlirSuccPredAccesses
  7. AlirEdgeAccesses
  8. AlirGraph
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new PointerAssignmentGraph()

    Permalink

Type Members

  1. type Edge = AlirEdge[Node]

    Permalink
    Definition Classes
    AlirGraph
  2. final case class PTACallee(callee: Signature, pi: Point with Invoke, node: Node) extends Callee with Product with Serializable

    Permalink

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final val EDGE_TYPE: String("EdgeType")

    Permalink
  5. object EdgeType extends Enumeration

    Permalink
    Definition Classes
    PAGConstraint
  6. final val PARAM_NUM: String("ParamNumber")

    Permalink
  7. def addEdge(source: Node, target: Node, typ: PAGConstraint.EdgeType.Value): Edge

    Permalink
  8. def addEdge(e: Edge): Boolean

    Permalink
    Definition Classes
    AlirEdgeAccesses
  9. def addEdge(source: Node, target: Node): Edge

    Permalink
    Definition Classes
    AlirEdgeAccesses
  10. def addNode(point: Point, context: Context): Node

    Permalink
  11. def addNode(node: Node): Node

    Permalink
    Definition Classes
    InterproceduralGraph → AlirEdgeAccesses
  12. def addProcessed(jp: Signature, c: Context, ps: Set[Point]): Unit

    Permalink
  13. def applyConstraint(p: Point, ps: Set[Point], cfg: ControlFlowGraph[String], rda: Result): MMap[PAGConstraint.EdgeType.Value, MMap[Point, MSet[Point]]]

    Permalink
    Definition Classes
    PAGConstraint
  14. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  15. def breakPiEdges(pi: Point with Invoke, calleeAccessTyp: String, srcContext: Context): Unit

    Permalink
  16. def buildingEdges(map: MMap[PAGConstraint.EdgeType.Value, MMap[Point, MSet[Point]]], pSig: Signature, context: Context): Set[Edge]

    Permalink
  17. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  18. def collectNodes(ap: JawaMethod, p: Point, callerContext: Context, entryPoint: Boolean): ISet[Node]

    Permalink
  19. def combinePags(pag2: PointerAssignmentGraph[Node]): MList[Node]

    Permalink

    combine two pags into one.

  20. def constructGraph(ap: JawaMethod, ps: Set[Point], callerContext: Context, entryPoint: Boolean): Unit

    Permalink

    create the nodes and edges to reflect the constraints corresponding to the given program point.

    create the nodes and edges to reflect the constraints corresponding to the given program point. If a value is added to a node, then that node is added to the worklist.

  21. def deleteEdge(e: Edge): Boolean

    Permalink
    Definition Classes
    InterproceduralGraph
  22. def deleteEdge(source: Node, target: Node): Edge

    Permalink
    Definition Classes
    InterproceduralGraph
  23. def deleteNode(node: Node): Boolean

    Permalink
    Definition Classes
    InterproceduralGraph
  24. val eIDProvider: EdgeNameProvider[Edge] { def filterLabel(uri: String): String }

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph
  25. def edgeSource(edge: AlirEdge[Node]): Node

    Permalink
    Attributes
    protected
    Definition Classes
    AlirSuccPredAccesses
  26. def edgeTarget(edge: AlirEdge[Node]): Node

    Permalink
    Attributes
    protected
    Definition Classes
    AlirSuccPredAccesses
  27. def edges: Iterable[Edge]

    Permalink
    Definition Classes
    AlirGraph
  28. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  29. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  30. def extendGraph(met: Point with Method, pi: Point with Invoke, srcContext: Context): Any

    Permalink
  31. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  32. def findPath(srcNode: Node, tarNode: Node): IList[Edge]

    Permalink
    Definition Classes
    InterproceduralGraph
  33. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  34. def getDirectCallee(global: Global, diff: ISet[Instance], pi: Point with Invoke): ISet[InstanceCallee]

    Permalink
  35. def getEdgeType(edge: Edge): PAGConstraint.EdgeType.Value

    Permalink
  36. def getEdges(n1: Node, n2: Node): CSet[Edge]

    Permalink
    Definition Classes
    AlirGraph
  37. def getNode(point: Point, context: Context): Node

    Permalink
  38. def getNode(n: Node): Node

    Permalink
    Definition Classes
    InterproceduralGraph → AlirGraph
  39. def getNodeOrElse(p: Point, context: Context): Node

    Permalink
  40. def getPointMethod(proc: Signature, callerContext: Context): Point with Method

    Permalink
  41. def getProcessed: MMap[(Signature, Context), Point with Method]

    Permalink
  42. def getStaticCallee(global: Global, pi: Point with Invoke): Option[StaticCallee]

    Permalink
  43. def getSuperCalleeSet(global: Global, diff: ISet[Instance], pi: Point with Invoke): ISet[InstanceCallee]

    Permalink
  44. def getVirtualCalleeSet(global: Global, diff: ISet[Instance], pi: Point with Invoke): ISet[InstanceCallee]

    Permalink
  45. val graph: DirectedPseudograph[Node, Edge]

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph → AlirGraph
  46. def handleModelCall(pi: Point with Invoke, context: Context, callee: Callee): Unit

    Permalink
  47. def hasEdge(n1: Node, n2: Node): Boolean

    Permalink
    Definition Classes
    AlirGraph
  48. def hasNode(n: Node): Boolean

    Permalink
    Definition Classes
    AlirGraph
  49. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  50. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  51. def isProcessed(proc: Signature, callerContext: Context): Boolean

    Permalink
  52. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  53. def newNode(point: Point, context: Context): PtaNode

    Permalink
    Attributes
    protected
  54. def nodeExists(point: Point, context: Context): Boolean

    Permalink
  55. def nodes: Iterable[Node]

    Permalink
    Definition Classes
    AlirGraph
  56. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  57. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  58. def numOfEdges: Int

    Permalink
    Definition Classes
    AlirGraph
  59. def numOfNodes: Int

    Permalink
    Definition Classes
    AlirGraph
  60. val pl: MMap[InterproceduralNode, Node]

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph
  61. val pointsToMap: PointsToMap

    Permalink
  62. def pool: MMap[InterproceduralNode, Node]

    Permalink
    Definition Classes
    InterproceduralGraph
  63. def prePostNodeOrder(n: Node): MMap[Node, (Int, Int)]

    Permalink
    Definition Classes
    AlirGraph
  64. def predecessor(edge: Edge): Node

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  65. def predecessorEdges(node: Node): CSet[Edge]

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  66. def predecessors(node: Node): CSet[Node]

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  67. def processObjectAllocation(): Unit

    Permalink
  68. def processStaticCall(global: Global): ISet[(Point with Invoke, PTACallee, Context)]

    Permalink
  69. def recvInverse(n: Node): Option[Point with Invoke]

    Permalink

    This is the recv bar method in original algo

  70. def searchRda(p: Point, points: Set[Point], slots: ISet[(Slot, DefDesc)], avoidMode: Boolean): Set[Point]

    Permalink
    Definition Classes
    PAGConstraint
  71. def stronglyConnectedSets: Iterable[CSet[Node]]

    Permalink
    Definition Classes
    AlirGraph
  72. def successor(edge: Edge): Node

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  73. def successorEdges(node: Node): CSet[Edge]

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  74. def successors(node: Node): CSet[Node]

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  75. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  76. def toDot(w: Writer, vlp: VertexNameProvider[Node] = vIDProvider): Unit

    Permalink
    Definition Classes
    InterproceduralGraph
  77. def toGML(w: Writer, vip: VertexNameProvider[Node] = vIDProvider, vlp: VertexNameProvider[Node] = vLDProvider, eip: EdgeNameProvider[Edge] = eIDProvider, elp: EdgeNameProvider[Edge] = null): Unit

    Permalink
    Definition Classes
    InterproceduralGraph
  78. def toGraphML(w: Writer, vip: VertexNameProvider[Node] = vIDProvider, vlp: VertexNameProvider[Node] = vLDProvider, eip: EdgeNameProvider[Edge] = eIDProvider, elp: EdgeNameProvider[Edge] = null): Unit

    Permalink
    Definition Classes
    InterproceduralGraph
  79. def toString(): String

    Permalink
    Definition Classes
    PointerAssignmentGraph → AnyRef → Any
  80. def udChain(p: Point with Loc, points: Set[Point], cfg: ControlFlowGraph[String], rda: Result, avoidMode: Boolean = true): Set[Point]

    Permalink
    Definition Classes
    PAGConstraint
  81. def udChainForMethodExit(p: Point with Param with Exit, points: Set[Point], cfg: ControlFlowGraph[String], rda: Result, avoidMode: Boolean = true): Set[Point]

    Permalink
    Definition Classes
    PAGConstraint
  82. def updateContext(callerContext: Context): Unit

    Permalink
  83. val vIDProvider: VertexNameProvider[Node] { def filterLabel(uri: String): String }

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph
  84. val vLDProvider: VertexNameProvider[Node] { def filterLabel(uri: String): String }

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph
  85. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  86. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  87. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  88. final val worklist: MList[Node]

    Permalink

Inherited from PAGConstraint

Inherited from InterproceduralGraph[Node]

Inherited from Serializable

Inherited from Serializable

Inherited from AlirSuccPredAccesses[Node]

Inherited from AlirEdgeAccesses[Node]

Inherited from AlirGraph[Node]

Inherited from AnyRef

Inherited from Any

Ungrouped