◆ InstControlFlowAnalyzer()
◆ analyze()
Analyzes a given method by creating an array of instruction blocks, mapping each instruction node to a block, and storing the index of each block. It then retrieves the lines of text for each instruction node and adds them to the corresponding block. Finally, it delegates the analysis to the superclass implementation.
- Parameters
-
owner | the owner of the method |
method | the method node to be analyzed |
- Returns
- an array of frames containing the analysis results
- Exceptions
-
AnalyzerException | if an error occurs during the analysis |
◆ getBlocks()
Returns an array of InsnBlock objects representing the blocks of instructions.
- Returns
- an array of InsnBlock objects
◆ newControlFlowEdge()
Creates a new control flow edge between the instruction at the specified index and its successor index. This method determines the type of the instruction at the specified index and adds the appropriate control flow edge. If the instruction is a jump instruction, it adds a next edge if the successor index is the next instruction index, otherwise it adds a jump edge. If the instruction is a lookupswitch, tableswitch, or ret instruction, it adds a jump edge. If the instruction is a throw instruction or a return instruction, it throws an IllegalStateException. Otherwise, it adds a next edge.
- Parameters
-
insnIndex | the index of the instruction |
successorIndex | the index of the successor instruction |
◆ blockToIndexMap
◆ nodeToBlockMap
◆ nodeToJumpBlockMap
The documentation for this class was generated from the following file: