public abstract class ArrayLoadInstruction extends JVMArrayElementInstruction implements JVMInstruction
arrayOperandAttr, arrayRef, index, indexOperandAttrattr, insnIndex, mi, position| Constructor and Description |
|---|
ArrayLoadInstruction() |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(JVMInstructionVisitor 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() |
java.lang.Object |
peekArrayAttr(ThreadInfo ti) |
int |
peekArrayRef(ThreadInfo ti)
only makes sense pre-exec
|
int |
peekIndex(ThreadInfo ti) |
java.lang.Object |
peekIndexAttr(ThreadInfo ti) |
protected abstract void |
push(StackFrame frame,
ElementInfo e,
int index) |
getArrayOperandAttr, getArrayRef, getElementInfo, getElementSize, getIndex, getIndexOperandAttr, isReferenceArray, peekArrayElementInfoaddAttr, asInstruction, attrIterator, attrIterator, cleanupTransients, getAttr, getAttr, getFileLocation, getFilePos, getInstructionIndex, getLength, getLineNumber, getMethodInfo, getMnemonic, getNext, getNext, getNextAttr, getPosition, getPrev, getSourceLine, getSourceLocation, getSourceOrLocation, hasAttr, hasAttr, init, isBackJump, isCompleted, isExtendedInstruction, isFirstInstruction, isMonitorEnterPrologue, isSchedulingRelevant, removeAttr, replaceAttr, requiresClinitExecution, setAttr, setContext, setLocation, setMethodInfo, toPostExecString, toString, typeSafeCloneclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitasInstruction, getByteCode, getFileLocation, getFilePos, getInstructionIndex, getLength, getLineNumber, getMethodInfo, getMnemonic, getNext, getNext, getPosition, getPrev, getSourceLine, getSourceLocation, isBackJump, isCompleted, isExtendedInstruction, isFirstInstruction, toPostExecStringaddAttr, attrIterator, attrIterator, getAttr, getAttr, getNextAttr, hasAttr, hasAttr, removeAttr, replaceAttr, setAttrpublic Instruction execute(ThreadInfo ti)
Instructionexecute in interface InstructionInterfaceexecute in class Instructionprotected boolean isReference()
public int peekArrayRef(ThreadInfo ti)
peekArrayRef in class JVMArrayElementInstructionpublic java.lang.Object peekArrayAttr(ThreadInfo ti)
peekArrayAttr in class JVMArrayElementInstructionpublic int peekIndex(ThreadInfo ti)
peekIndex in class JVMArrayElementInstructionpublic java.lang.Object peekIndexAttr(ThreadInfo ti)
peekIndexAttr in class JVMArrayElementInstructionprotected abstract void push(StackFrame frame, ElementInfo e, int index) throws ArrayIndexOutOfBoundsExecutiveException
public boolean isRead()
isRead in interface ReadOrWriteInstructionisRead in class JVMArrayElementInstructionpublic void accept(JVMInstructionVisitor insVisitor)
accept in interface JVMInstruction