|
|
@ -36,6 +36,23 @@ public class CatchFinallyBlock extends CatchBlock { |
|
|
|
fin.setFlowBlock(flowBlock); |
|
|
|
fin.setFlowBlock(flowBlock); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* Returns the block where the control will normally flow to, when |
|
|
|
|
|
|
|
* the given sub block is finished (<em>not</em> ignoring the jump |
|
|
|
|
|
|
|
* after this block). FinallyBlock have a special behaviour, since |
|
|
|
|
|
|
|
* the try block has the finallyblock as successor and the |
|
|
|
|
|
|
|
* finallyblock has no default successor at all!! |
|
|
|
|
|
|
|
* |
|
|
|
|
|
|
|
* @return null, if the control flows to another FlowBlock. |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
public StructuredBlock getNextBlock(StructuredBlock subBlock) { |
|
|
|
|
|
|
|
return subBlock == tryBlock ? finallyBlock : null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public FlowBlock getNextFlowBlock(StructuredBlock subBlock) { |
|
|
|
|
|
|
|
return null; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* Replaces the given sub block with a new block. |
|
|
|
* Replaces the given sub block with a new block. |
|
|
|
* @param oldBlock the old sub block. |
|
|
|
* @param oldBlock the old sub block. |
|
|
|