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
FieldsFields inherited from class org.apache.bcel.generic.InstructionHandle
i_position
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static BranchHandle
Factory method.int
void
Set new contents.(package private) void
setPosition
(int pos) Set the position, i.e., the byte code offset of the contained instruction.void
Pass new target to instruction.protected int
updatePosition
(int offset, int max_offset) Called by InstructionList.setPositions when setting the position for every instruction.void
updateTarget
(InstructionHandle old_ih, InstructionHandle new_ih) Update target of instruction.Methods inherited from class org.apache.bcel.generic.InstructionHandle
accept, addAttribute, addHandle, addTargeter, dispose, getAttribute, getAttributes, getInstruction, getInstructionHandle, getNext, getPrev, getTargeters, hasTargeters, removeAllTargeters, removeAttribute, removeTargeter, setNext, setPrev, swapInstruction, toString, toString
-
Field Details
-
bi
-
-
Constructor Details
-
BranchHandle
-
-
Method Details
-
getBranchHandle
Factory method. -
getPosition
public int getPosition()- Overrides:
getPosition
in classInstructionHandle
- Returns:
- the position, i.e., the byte code offset of the contained instruction. This is accurate only after InstructionList.setPositions() has been called.
-
setPosition
void setPosition(int pos) Description copied from class:InstructionHandle
Set the position, i.e., the byte code offset of the contained instruction.- Overrides:
setPosition
in classInstructionHandle
-
updatePosition
protected int updatePosition(int offset, int max_offset) Description copied from class:InstructionHandle
Called 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:
updatePosition
in 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:
setInstruction
in classInstructionHandle
-