public abstract class InstanceFieldInstruction extends FieldInstruction
| Modifier and Type | Field and Description |
|---|---|
protected int |
lastThis
this is required for package external derived GET/PUTFIELDS that
replace enter().
|
className, fi, fname, isReferenceField, lastValue, size, varIdattr, insnIndex, mi, position| Modifier | Constructor and Description |
|---|---|
protected |
InstanceFieldInstruction() |
protected |
InstanceFieldInstruction(String fieldName,
String classType,
String fieldDescriptor) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(InstructionVisitor insVisitor) |
String |
getFieldDescriptor() |
FieldInfo |
getFieldInfo() |
ElementInfo |
getLastElementInfo()
since this is based on getLastThis(), the same context restrictions apply
|
int |
getLastThis()
NOTE - the return value is *only* valid in a instructionExecuted() context, since
the same instruction can be executed from different threads
|
protected boolean |
isNewPorFieldBoundary(ThreadInfo ti,
FieldInfo fi,
int objRef) |
protected boolean |
isSchedulingRelevant(ThreadInfo ti,
int objRef) |
protected boolean |
isSkippedFinalField(ElementInfo ei) |
abstract ElementInfo |
peekElementInfo(ThreadInfo ti)
this one can be used from a choiceGeneratorSet() or executeInstruction() context, since
it peeks 'this' from the operand stack (enter didn't pop the value yet)
it' less efficient than getLastElementInfo() from a instructionExecuted context
|
createAndSetSharedFieldAccessCG, createAndSetSharedObjectExposureCG, getClassName, getFieldName, getFieldSize, getId, getLastValue, getVariableId, init, isLockProtected, isMonitorEnterPrologue, isRead, isReferenceField, popOperands1, popOperands2, put, put1, put2, setFieldaddAttr, attrIterator, attrIterator, cleanupTransients, execute, 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, typeSafeCloneprotected int lastThis
public FieldInfo getFieldInfo()
getFieldInfo in class FieldInstructionprotected boolean isSkippedFinalField(ElementInfo ei)
isSkippedFinalField in class FieldInstructionprotected boolean isSchedulingRelevant(ThreadInfo ti, int objRef)
protected boolean isNewPorFieldBoundary(ThreadInfo ti, FieldInfo fi, int objRef)
public int getLastThis()
public ElementInfo getLastElementInfo()
getLastElementInfo in class FieldInstructionpublic abstract ElementInfo peekElementInfo(ThreadInfo ti)
peekElementInfo in class FieldInstructionpublic String getFieldDescriptor()
public void accept(InstructionVisitor insVisitor)
accept in interface InstructionVisitorAcceptoraccept in class FieldInstruction