CatchTable instances from RopMethod
and associated data.
| Modifier and Type | Field and Description |
|---|---|
| private final BlockAddresses | addresses
|
| private static final int | MAX_CATCH_RANGE
the maximum range of a single catch handler, in code units |
| private final RopMethod | method
|
| private final int[] | order
|
| Access | Constructor and Description |
|---|---|
| public | StdCatchBuilder(RopMethod
non-null; method to build the list fornon-null; block output ordernon-null; address objects for each blockConstructs an instance. |
| Modifier and Type | Method and Description |
|---|---|
| public CatchTable | build()
Implements org. |
| public static CatchTable | Returns: non-null; the constructed tablenon-null; method to build the list fornon-null; block output ordernon-null; address objects for each blockBuilds and returns the catch table for a given method. |
| public HashSet | getCatchTypes()
Implements org. |
| private static CatchHandlerList | Returns: non-null; array of entriesnon-null; block to get entries fornon-null; address objects for each blockMakes the |
| public boolean | hasAnyCatches()
Implements org. |
| private static CatchTable. | makeEntry(BasicBlock
non-null; the start block for the range (inclusive)non-null; the start block for the range (also inclusive)non-null; the handlers for the rangenon-null; address objects for each blockMakes a |
| private static boolean | Returns: true if the range is valid as a catch rangenon-null; the start block for the range (inclusive)non-null; the start block for the range (also inclusive)non-null; address objects for each blockGets whether the address range for the given two blocks is valid for a catch handler. |
| addresses | back to summary |
|---|---|
| private final BlockAddresses addresses
| |
| MAX_CATCH_RANGE | back to summary |
|---|---|
| private static final int MAX_CATCH_RANGE the maximum range of a single catch handler, in code units | |
| method | back to summary |
|---|---|
| private final RopMethod method
| |
| order | back to summary |
|---|---|
| private final int[] order
| |
| StdCatchBuilder | back to summary |
|---|---|
| public StdCatchBuilder(RopMethod method, int[] order, BlockAddresses addresses) Constructs an instance. It merely holds onto its parameters for
a subsequent call to
| |
| build | back to summary |
|---|---|
| public CatchTable build() Implements org. Doc from org. Builds and returns the catch table for this instance.
| |
| build | back to summary |
|---|---|
| public static CatchTable build(RopMethod method, int[] order, BlockAddresses addresses) Builds and returns the catch table for a given method.
| |
| getCatchTypes | back to summary |
|---|---|
| public HashSet Implements org. Doc from org. Gets the set of catch types associated with this instance. | |
| handlersFor | back to summary |
|---|---|
| private static CatchHandlerList handlersFor(BasicBlock block, BlockAddresses addresses) Makes the
| |
| hasAnyCatches | back to summary |
|---|---|
| public boolean hasAnyCatches() Implements org. Doc from org. Gets whether this instance has any catches at all (either typed or catch-all).
| |
| makeEntry | back to summary |
|---|---|
| private static CatchTable. Makes a
| |
| rangeIsValid | back to summary |
|---|---|
| private static boolean rangeIsValid(BasicBlock start, BasicBlock end, BlockAddresses addresses) Gets whether the address range for the given two blocks is valid for a catch handler. This is true as long as the covered range is under 65536 code units.
| |