public abstract class ArrayStoreInstruction extends ArrayElementInstruction implements StoreInstruction
indexarrayRefattr, insnIndex, mi, position| Constructor and Description |
|---|
ArrayStoreInstruction() |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(InstructionVisitor insVisitor) |
protected Instruction |
checkArrayStoreException(ThreadInfo ti,
ElementInfo ei) |
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 int |
peekArrayRef(ThreadInfo ti)
this is for pre-exec use
|
protected int |
peekIndex(ThreadInfo ti) |
protected abstract void |
popValue(StackFrame frame) |
protected abstract void |
setField(ElementInfo e,
int index) |
createAndSetArrayCG, getElementSize, getIndexgetArrayRefaddAttr, 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, typeSafeClonepublic Instruction execute(ThreadInfo ti)
Instructionexecute in class Instructionprotected int peekArrayRef(ThreadInfo ti)
peekArrayRef in class ArrayInstructionprotected int peekIndex(ThreadInfo ti)
peekIndex in class ArrayElementInstructionprotected Instruction checkArrayStoreException(ThreadInfo ti, ElementInfo ei)
protected abstract void popValue(StackFrame frame)
protected abstract void setField(ElementInfo e, int index) throws ArrayIndexOutOfBoundsExecutiveException
public boolean isRead()
isRead in class ArrayElementInstructionpublic void accept(InstructionVisitor insVisitor)
accept in interface InstructionVisitorAcceptoraccept in class ArrayInstruction