View Javadoc

1   package serp.bytecode;
2   
3   import java.util.*;
4   
5   /***
6    * An entity that maintains ptrs to instructions in a code block.
7    *
8    * @author Abe White
9    */
10  public interface InstructionPtr {
11      /***
12       * Use the byte indexes read from the class file to calculate and
13       * set references to the target instruction(s) for this ptr.
14       * This method will be called after the byte code
15       * has been read in for the first time and before it is written after
16       * modification.
17       */
18      public void updateTargets();
19  
20      /***
21       * Replace the given old, likely invalid, target with a new target. The
22       * new target Instruction is guaranteed to be in the same code
23       * block as this InstructionPtr.
24       */
25      public void replaceTarget(Instruction oldTarget, Instruction newTarget);
26  
27      /***
28       * Returns the Code block that owns the Instruction(s) this
29       * InstructionPtr points to.
30       */
31      public Code getCode();
32  }