public abstract class LongReturn extends ReturnInstruction
| Modifier and Type | Field and Description |
|---|---|
protected long |
ret |
returnFrameattr, insnIndex, mi, position| Constructor and Description |
|---|
LongReturn() |
| Modifier and Type | Method and Description |
|---|---|
void |
addReturnAttr(ThreadInfo ti,
Object attr) |
protected void |
getAndSaveReturnValue(StackFrame frame) |
<T> T |
getNextReturnAttr(ThreadInfo ti,
Class<T> type,
Object prev) |
Object |
getReturnAttr(ThreadInfo ti)
this returns all of them - use either if you know there will be only
one attribute at a time, or check/process result with ObjectList
obviously, this only makes sense from an instructionExecuted(), since
the value is pushed during the enter().
|
<T> T |
getReturnAttr(ThreadInfo ti,
Class<T> type)
this only returns the first attr of this type, there can be more
if you don't use client private types or the provided type is too general
|
protected Object |
getReturnedOperandAttr(StackFrame frame) |
int |
getReturnTypeSize() |
boolean |
hasReturnAttr(ThreadInfo ti) |
boolean |
hasReturnAttr(ThreadInfo ti,
Class<?> type) |
protected void |
pushReturnValue(StackFrame frame) |
Iterator |
returnAttrIterator(ThreadInfo ti) |
<T> Iterator<T> |
returnAttrIterator(ThreadInfo ti,
Class<T> type) |
void |
setReturnAttr(ThreadInfo ti,
Object a)
this replaces all of them - use only if you know
- there will be only one attribute at a time
- you obtained the value you set by a previous getXAttr()
- you constructed a multi value list with ObjectList.createList()
we don't clone since pushing a return value already changed the caller frame
|
accept, cleanupTransients, execute, getReturnFrame, getReturnValue, setReturnFrameaddAttr, attrIterator, attrIterator, 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 int getReturnTypeSize()
getReturnTypeSize in class ReturnInstructionprotected Object getReturnedOperandAttr(StackFrame frame)
getReturnedOperandAttr in class ReturnInstructionprotected void getAndSaveReturnValue(StackFrame frame)
getAndSaveReturnValue in class ReturnInstructionprotected void pushReturnValue(StackFrame frame)
pushReturnValue in class ReturnInstructionpublic boolean hasReturnAttr(ThreadInfo ti)
hasReturnAttr in class ReturnInstructionpublic boolean hasReturnAttr(ThreadInfo ti, Class<?> type)
hasReturnAttr in class ReturnInstructionpublic Object getReturnAttr(ThreadInfo ti)
getReturnAttr in class ReturnInstructionpublic void setReturnAttr(ThreadInfo ti, Object a)
setReturnAttr in class ReturnInstructionpublic <T> T getReturnAttr(ThreadInfo ti, Class<T> type)
getReturnAttr in class ReturnInstructionpublic <T> T getNextReturnAttr(ThreadInfo ti, Class<T> type, Object prev)
getNextReturnAttr in class ReturnInstructionpublic Iterator returnAttrIterator(ThreadInfo ti)
returnAttrIterator in class ReturnInstructionpublic <T> Iterator<T> returnAttrIterator(ThreadInfo ti, Class<T> type)
returnAttrIterator in class ReturnInstructionpublic void addReturnAttr(ThreadInfo ti, Object attr)
addReturnAttr in class ReturnInstruction