Package org.apache.bcel.generic
Class BranchHandle
- java.lang.Object
-
- org.apache.bcel.generic.InstructionHandle
-
- org.apache.bcel.generic.BranchHandle
-
public final class BranchHandle extends InstructionHandle
BranchHandle is returned by specialized InstructionList.append() whenever a BranchInstruction is appended. This is useful when the target of this instruction is not known at time of creation and must be set later via setTarget().- See Also:
InstructionHandle,Instruction,InstructionList
-
-
Field Summary
-
Fields inherited from class org.apache.bcel.generic.InstructionHandle
i_position
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetPosition()InstructionHandlegetTarget()voidsetInstruction(Instruction i)Set new contents.voidsetTarget(InstructionHandle ih)Pass new target to instruction.protected intupdatePosition(int offset, int max_offset)Called by InstructionList.setPositions when setting the position for every instruction.voidupdateTarget(InstructionHandle old_ih, InstructionHandle new_ih)Update target of instruction.-
Methods inherited from class org.apache.bcel.generic.InstructionHandle
accept, addAttribute, addHandle, addTargeter, getAttribute, getAttributes, getInstruction, getNext, getPrev, getTargeters, hasTargeters, removeAllTargeters, removeAttribute, removeTargeter, swapInstruction, toString, toString
-
-
-
-
Method Detail
-
getPosition
public int getPosition()
- Overrides:
getPositionin classInstructionHandle- Returns:
- the position, i.e., the byte code offset of the contained instruction. This is accurate only after InstructionList.setPositions() has been called.
-
updatePosition
protected int updatePosition(int offset, int max_offset)Description copied from class:InstructionHandleCalled by InstructionList.setPositions when setting the position for every instruction. In the presence of variable length instructions `setPositions()' performs multiple passes over the instruction list to calculate the correct (byte) positions and offsets by calling this function.- Overrides:
updatePositionin classInstructionHandle- Parameters:
offset- additional offset caused by preceding (variable length) instructionsmax_offset- the maximum offset that may be caused by these instructions- Returns:
- additional offset caused by possible change of this instruction's length
-
setTarget
public void setTarget(InstructionHandle ih)
Pass new target to instruction.
-
updateTarget
public void updateTarget(InstructionHandle old_ih, InstructionHandle new_ih)
Update target of instruction.
-
getTarget
public InstructionHandle getTarget()
- Returns:
- target of instruction.
-
setInstruction
public void setInstruction(Instruction i)
Set new contents. Old instruction is disposed and may not be used anymore.- Overrides:
setInstructionin classInstructionHandle
-
-