javassist.bytecode.analysis
Class ControlFlow.Block

java.lang.Object
  extended by javassist.bytecode.stackmap.BasicBlock
      extended by javassist.bytecode.analysis.ControlFlow.Block
Enclosing class:
ControlFlow

public static class ControlFlow.Block
extends javassist.bytecode.stackmap.BasicBlock

Basic block. It is a sequence of contiguous instructions that do not contain jump/branch instructions except the last one. Since Java6 or later does not allow JSR, we deal with JSR as a non-branch instruction.


Nested Class Summary
 
Nested classes/interfaces inherited from class javassist.bytecode.stackmap.BasicBlock
javassist.bytecode.stackmap.BasicBlock.Catch, javassist.bytecode.stackmap.BasicBlock.Maker
 
Field Summary
 java.lang.Object clientData
          A field that can be freely used for storing extra data.
 
Method Summary
 ControlFlow.Catcher[] catchers()
          Returns catch clauses that will catch an exception thrown in this block.
 ControlFlow.Block exit(int n)
          Returns the n-th block that may be executed after this block.
 int exits()
          Return the number of the blocks that may be executed after this block.
 ControlFlow.Block incoming(int n)
          Returns the blocks that the control may jump into this block from.
 int incomings()
          Returns the number of the control paths entering this block.
 int index()
          Returns the position of this block in the array of basic blocks that the basicBlocks method returns.
 int length()
          Returns the length of this block.
 int position()
          Returns the position of the first instruction in this block.
 
Methods inherited from class javassist.bytecode.stackmap.BasicBlock
find, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

clientData

public java.lang.Object clientData
A field that can be freely used for storing extra data. A client program of this control-flow analyzer can append an additional attribute to a Block object. The Javassist library never accesses this field.

Method Detail

index

public int index()
Returns the position of this block in the array of basic blocks that the basicBlocks method returns.

See Also:
ControlFlow.basicBlocks()

position

public int position()
Returns the position of the first instruction in this block.


length

public int length()
Returns the length of this block.


incomings

public int incomings()
Returns the number of the control paths entering this block.


incoming

public ControlFlow.Block incoming(int n)
Returns the blocks that the control may jump into this block from.


exits

public int exits()
Return the number of the blocks that may be executed after this block.


exit

public ControlFlow.Block exit(int n)
Returns the n-th block that may be executed after this block.

Parameters:
n - an index in the array of exit blocks.

catchers

public ControlFlow.Catcher[] catchers()
Returns catch clauses that will catch an exception thrown in this block.



Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999- Shigeru Chiba. All Rights Reserved.