Package org.apache.bcel.generic
Class BranchHandle
java.lang.Object
org.apache.bcel.generic.InstructionHandle
org.apache.bcel.generic.BranchHandle
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:
-
Field Summary
Fields inherited from class org.apache.bcel.generic.InstructionHandle
i_position -
Method Summary
Modifier and TypeMethodDescriptionintvoidSet new contents.voidPass 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 Details
-
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
Pass new target to instruction. -
updateTarget
Update target of instruction. -
getTarget
- Returns:
- target of instruction.
-
setInstruction
Set new contents. Old instruction is disposed and may not be used anymore.- Overrides:
setInstructionin classInstructionHandle
-