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:
  • Method Details

    • getPosition

      public int getPosition()
      Overrides:
      getPosition in class InstructionHandle
      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: 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 class InstructionHandle
      Parameters:
      offset - additional offset caused by preceding (variable length) instructions
      max_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:
      setInstruction in class InstructionHandle