Package sootup.core.graph
Class MutableBasicBlockImpl
java.lang.Object
sootup.core.graph.MutableBasicBlockImpl
- All Implemented Interfaces:
BasicBlock<MutableBasicBlock>,MutableBasicBlock
Block of a
MutableBlockControlFlowGraph.
Edges are changed only via the package-private link primitives, which always update both ends:
normal edges (link(int, sootup.core.graph.MutableBasicBlockImpl)/unlink(int)) and exceptional edges (linkExc(sootup.core.types.ClassType, sootup.core.graph.MutableBasicBlockImpl)/unlinkExc(sootup.core.types.ClassType)). Normal and exceptional predecessors are kept apart, one entry per edge, so removing
an edge removes exactly one entry.
The successor array always has the size of the tail's expected successor count; unset slots are null.
-
Constructor Summary
ConstructorsConstructorDescriptionMutableBasicBlockImpl(@NonNull List<Stmt> stmts, @NonNull Map<ClassType, MutableBasicBlock> exceptionMap) standalone block with the given stmts; exceptional successors are linked both ways -
Method Summary
Modifier and TypeMethodDescriptionboolean@NonNull Map<ClassType,MutableBasicBlock> @NonNull StmtgetHead()@NonNull List<MutableBasicBlock>normal and exceptional predecessors, one entry per edgeintgetStmts()@NonNull List<MutableBasicBlock>@NonNull StmtgetTail()inthashCode()toString()Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface sootup.core.graph.BasicBlock
equivTo, isEmpty
-
Constructor Details
-
MutableBasicBlockImpl
public MutableBasicBlockImpl() -
MutableBasicBlockImpl
public MutableBasicBlockImpl(@NonNull List<Stmt> stmts, @NonNull Map<ClassType, MutableBasicBlock> exceptionMap) standalone block with the given stmts; exceptional successors are linked both ways
-
-
Method Details
-
equals
-
hashCode
public int hashCode() -
getPredecessors
Description copied from interface:MutableBasicBlocknormal and exceptional predecessors, one entry per edge- Specified by:
getPredecessorsin interfaceBasicBlock<MutableBasicBlock>- Specified by:
getPredecessorsin interfaceMutableBasicBlock
-
getSuccessors
- Specified by:
getSuccessorsin interfaceBasicBlock<MutableBasicBlock>- Specified by:
getSuccessorsin interfaceMutableBasicBlock
-
getExceptionalPredecessors
- Specified by:
getExceptionalPredecessorsin interfaceBasicBlock<MutableBasicBlock>- Specified by:
getExceptionalPredecessorsin interfaceMutableBasicBlock
-
getExceptionalSuccessors
- Specified by:
getExceptionalSuccessorsin interfaceBasicBlock<MutableBasicBlock>- Specified by:
getExceptionalSuccessorsin interfaceMutableBasicBlock
-
getStmts
- Specified by:
getStmtsin interfaceBasicBlock<MutableBasicBlock>- Specified by:
getStmtsin interfaceMutableBasicBlock
-
getStmtCount
public int getStmtCount()- Specified by:
getStmtCountin interfaceBasicBlock<MutableBasicBlock>- Specified by:
getStmtCountin interfaceMutableBasicBlock
-
getHead
- Specified by:
getHeadin interfaceBasicBlock<MutableBasicBlock>- Specified by:
getHeadin interfaceMutableBasicBlock
-
getTail
- Specified by:
getTailin interfaceBasicBlock<MutableBasicBlock>- Specified by:
getTailin interfaceMutableBasicBlock
-
toString
-