/** * Set the last {@link Instruction} for which this local is in scope. * The instruction must already be a part of the method. * WARNING: if this instruction is deleted, the results are undefined. */ public void setEnd(Instruction end) { if (end.getCode() != getCode()) throw new IllegalArgumentException("Instruction pointers and " + "targets must be part of the same code block."); _end = end; _length = -1; }
/** * Changes the target Instruction. The target is in the best state * possible and should maintain this information even in the face * of Code imports and Code changes. */ public void setTargetInstruction(Instruction ins) { if (ins.getCode() != getCode()) throw new IllegalArgumentException("Instruction pointers and " + "targets must be part of the same code block."); _target = ins; _byteIndex = -1; }
/** * Position the iterator just before the given instruction. The * instruction must belong to this method. */ public void before(Instruction ins) { if (ins.getCode() != this) throw new IllegalArgumentException("ins.code != this"); _ci = new CodeIterator(ins.prev, CodeIterator.UNSET); }
/** * Changes the target Instruction. The target is in the best state * possible and should maintain this information even in the face * of Code imports and Code changes. */ public void setTargetInstruction(Instruction ins) { if (ins.getCode() != getCode()) throw new IllegalArgumentException("Instruction pointers and " + "targets must be part of the same code block."); _target = ins; _byteIndex = -1; }
/** * Set the last {@link Instruction} for which this local is in scope. * The instruction must already be a part of the method. * WARNING: if this instruction is deleted, the results are undefined. */ public void setEnd(Instruction end) { if (end.getCode() != getCode()) throw new IllegalArgumentException("Instruction pointers and " + "targets must be part of the same code block."); _end = end; _length = -1; }
/** * Position the iterator just before the given instruction. The * instruction must belong to this method. */ public void before(Instruction ins) { if (ins.getCode() != this) throw new IllegalArgumentException("ins.code != this"); _ci = new CodeIterator(ins.prev, CodeIterator.UNSET); }