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, varId
attr, 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, setField
addAttr, 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, typeSafeClone
protected int lastThis
public FieldInfo getFieldInfo()
getFieldInfo
in class FieldInstruction
protected boolean isSkippedFinalField(ElementInfo ei)
isSkippedFinalField
in class FieldInstruction
protected boolean isSchedulingRelevant(ThreadInfo ti, int objRef)
protected boolean isNewPorFieldBoundary(ThreadInfo ti, FieldInfo fi, int objRef)
public int getLastThis()
public ElementInfo getLastElementInfo()
getLastElementInfo
in class FieldInstruction
public abstract ElementInfo peekElementInfo(ThreadInfo ti)
peekElementInfo
in class FieldInstruction
public String getFieldDescriptor()
public void accept(InstructionVisitor insVisitor)
accept
in interface InstructionVisitorAcceptor
accept
in class FieldInstruction