public abstract class ArrayLoadInstruction extends ArrayElementInstruction
index
arrayRef
attr, insnIndex, mi, position
Constructor and Description |
---|
ArrayLoadInstruction() |
Modifier and Type | Method and Description |
---|---|
void |
accept(InstructionVisitor insVisitor) |
Instruction |
execute(ThreadInfo ti)
this is the real workhorse
returns next instruction to enter in this thread
<2do> it's unfortunate we roll every side effect into this method, because
it diminishes the value of the 'executeInstruction' notification: all
insns that require some sort of late binding (InvokeVirtual, GetField, ..)
are not yet fully analyzable (e.g.
|
boolean |
isRead() |
protected boolean |
isReference() |
protected int |
peekArrayRef(ThreadInfo ti)
only makes sense pre-exec
|
protected int |
peekIndex(ThreadInfo ti) |
protected abstract void |
push(StackFrame frame,
ElementInfo e,
int index) |
createAndSetArrayCG, getElementSize, getIndex
getArrayRef
addAttr, attrIterator, attrIterator, cleanupTransients, getAttr, getAttr, getByteCode, getFileLocation, getFilePos, getInstructionIndex, getLength, getLineNumber, getMethodInfo, getMnemonic, getNext, getNext, getNextAttr, getPosition, getPrev, getSourceLine, getSourceLocation, getSourceOrLocation, hasAttr, hasAttr, init, isBackJump, isCompleted, isExtendedInstruction, isFirstInstruction, isSchedulingRelevant, removeAttr, replaceAttr, requiresClinitExecution, setAttr, setContext, setLocation, setMethodInfo, toString, typeSafeClone
public Instruction execute(ThreadInfo ti)
Instruction
execute
in class Instruction
protected boolean isReference()
protected int peekArrayRef(ThreadInfo ti)
peekArrayRef
in class ArrayInstruction
protected int peekIndex(ThreadInfo ti)
peekIndex
in class ArrayElementInstruction
protected abstract void push(StackFrame frame, ElementInfo e, int index) throws ArrayIndexOutOfBoundsExecutiveException
public boolean isRead()
isRead
in class ArrayElementInstruction
public void accept(InstructionVisitor insVisitor)
accept
in interface InstructionVisitorAcceptor
accept
in class ArrayInstruction