de.fub.bytecode.generic
Class BranchHandle
java.lang.Object
|
+--de.fub.bytecode.generic.InstructionHandle
|
+--de.fub.bytecode.generic.BranchHandle
- All Implemented Interfaces:
- java.io.Serializable
- 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().
- Version:
- $Id: BranchHandle.java,v 1.2 2001/05/09 09:26:57 dahm Exp $
- Author:
- M. Dahm
- See Also:
InstructionHandle
,
Instruction
,
InstructionList
, Serialized Form
Methods inherited from class de.fub.bytecode.generic.InstructionHandle |
accept, addAttribute, addTargeter, getAttribute, getInstruction, getNext, getPrev, getTargeters, hasTargeters, removeAllTargeters, removeAttribute, removeTargeter, swapInstruction, toString, toString |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
addHandle
protected void addHandle()
- Handle adds itself to the list of resuable handles.
- Overrides:
addHandle
in class InstructionHandle
getPosition
public int getPosition()
- Overrides:
getPosition
in class InstructionHandle
- Following copied from class:
de.fub.bytecode.generic.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
- Following copied from class:
de.fub.bytecode.generic.InstructionHandle
- 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:
setInstruction
in class InstructionHandle