/** The last {@link Instruction} for which this local is in scope. */ public Instruction getEnd() { if (_end != null) return _end; int idx = _target.getByteIndex() + _length; Instruction end = getCode().getInstruction(idx); if (end != null && (end.prev instanceof Instruction)) { return (Instruction) end.prev; } return getCode().getLastInstruction(); }
/** Return the index into the code byte array at which this local starts. */ public int getStartPc() { return _target.getByteIndex(); }
/** Get the number of bytes for which this local has a value in the code byte array. */ public int getLength() { if (_end != null) return _end.getByteIndex() + _end.getLength() - _target.getByteIndex(); return _length; }