public class PUTFIELD extends JVMInstanceFieldInstruction implements WriteInstruction
lastThisclassName, fi, fname, ftype, isReferenceField, lastValue, size, varIdattr, insnIndex, mi, position| Constructor and Description |
|---|
PUTFIELD(java.lang.String fieldName,
java.lang.String clsDescriptor,
java.lang.String fieldDescriptor) |
| 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.
|
int |
getByteCode() |
ElementInfo |
getElementInfo(ThreadInfo ti)
where do we write to?
NOTE: this should only be used from a executeInstruction()/instructionExecuted() context
|
int |
getLength()
return the length in bytes of this instruction.
|
int |
getObjectSlot(StackFrame frame) |
int |
getValueSlot(StackFrame frame)
where do we get the value from?
NOTE: only makes sense in a executeInstruction() context
|
boolean |
isRead() |
ElementInfo |
peekElementInfo(ThreadInfo ti) |
protected void |
popOperands(StackFrame frame) |
getFieldDescriptor, getFieldInfo, getLastElementInfo, getLastThis, toPostExecStringgetClassName, getFieldName, getFieldSize, getId, getLastValue, getVariableId, isMonitorEnterPrologue, isReferenceField, setField, toStringaddAttr, asInstruction, attrIterator, attrIterator, cleanupTransients, getAttr, getAttr, getFileLocation, getFilePos, getInstructionIndex, 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, typeSafeCloneclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetFieldInfoasInstruction, getFileLocation, getFilePos, getInstructionIndex, getLineNumber, getMethodInfo, getMnemonic, getNext, getNext, getPosition, getPrev, getSourceLine, getSourceLocation, isBackJump, isCompleted, isExtendedInstruction, isFirstInstruction, toPostExecStringaddAttr, attrIterator, attrIterator, getAttr, getAttr, getNextAttr, hasAttr, hasAttr, removeAttr, replaceAttr, setAttrgetFieldInfo, getFieldName, getLastValue, isReferenceFieldpublic PUTFIELD(java.lang.String fieldName,
java.lang.String clsDescriptor,
java.lang.String fieldDescriptor)
public int getObjectSlot(StackFrame frame)
getObjectSlot in class InstanceFieldInstructionpublic int getValueSlot(StackFrame frame)
getValueSlot in interface WriteInstructionpublic ElementInfo getElementInfo(ThreadInfo ti)
getElementInfo in interface ReadOrWriteInstructiongetElementInfo in class InstanceFieldInstructionpublic Instruction execute(ThreadInfo ti)
Instructionexecute in interface InstructionInterfaceexecute in class Instructionprotected void popOperands(StackFrame frame)
public ElementInfo peekElementInfo(ThreadInfo ti)
peekElementInfo in interface JVMFieldInstructionpeekElementInfo in class FieldInstructionpublic int getLength()
InstructiongetLength in interface InstructionInterfacegetLength in class Instructionpublic int getByteCode()
getByteCode in interface InstructionInterfacepublic boolean isRead()
isRead in interface ReadOrWriteInstructionisRead in class FieldInstructionpublic void accept(JVMInstructionVisitor insVisitor)
accept in interface JVMInstructionaccept in class JVMInstanceFieldInstruction