public class INVOKESTATIC extends JVMInvokeInstruction
argSize, arguments, cname, invokedMethod, lastObj, mname, signature
attr, insnIndex, mi, position
Modifier | Constructor and Description |
---|---|
protected |
INVOKESTATIC(java.lang.String clsDescriptor,
java.lang.String methodName,
java.lang.String signature) |
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 |
getArgSize()
this is slot size, i.e.
|
int |
getByteCode() |
protected ClassInfo |
getClassInfo() |
int |
getClassObjectRef() |
java.lang.Object |
getFieldValue(java.lang.String id,
ThreadInfo ti) |
ClassInfo |
getInvokedClassInfo() |
java.lang.String |
getInvokedClassName() |
MethodInfo |
getInvokedMethod() |
MethodInfo |
getInvokedMethod(ThreadInfo ti) |
StaticElementInfo |
getStaticElementInfo() |
java.lang.String |
toPostExecString()
this can contain additional info that was gathered/cached during execution
|
java.lang.String |
toString() |
Instruction |
typeSafeClone(MethodInfo mi)
this is overridden by any Instruction that use a cache for class or
method to provide a type safe cloning
|
getArgumentAttrs, getArgumentValue, getArgumentValues, getFieldOrArgumentValue, getInvokedMethodClassName, getInvokedMethodName, getInvokedMethodSignature, getLastObjRef, getLength, getReturnType, getReturnTypeName, hasArgumentAttr, hasArgumentObjectAttr, isCompleted, isReferenceReturnType, setInvokedMethod, setupCallee
reschedulesLockAcquisition
addAttr, asInstruction, attrIterator, attrIterator, cleanupTransients, getAttr, getAttr, getFileLocation, getFilePos, getInstructionIndex, getLineNumber, getMethodInfo, getMnemonic, getNext, getNext, getNextAttr, getPosition, getPrev, getSourceLine, getSourceLocation, getSourceOrLocation, hasAttr, hasAttr, init, isBackJump, isExtendedInstruction, isFirstInstruction, isMonitorEnterPrologue, isSchedulingRelevant, removeAttr, replaceAttr, requiresClinitExecution, setAttr, setContext, setLocation, setMethodInfo
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
asInstruction, getFileLocation, getFilePos, getInstructionIndex, getLineNumber, getMethodInfo, getMnemonic, getNext, getNext, getPosition, getPrev, getSourceLine, getSourceLocation, isBackJump, isExtendedInstruction, isFirstInstruction
addAttr, attrIterator, attrIterator, getAttr, getAttr, getNextAttr, hasAttr, hasAttr, removeAttr, replaceAttr, setAttr
protected INVOKESTATIC(java.lang.String clsDescriptor, java.lang.String methodName, java.lang.String signature)
protected ClassInfo getClassInfo()
public int getByteCode()
public java.lang.String toPostExecString()
Instruction
toPostExecString
in interface InstructionInterface
toPostExecString
in class Instruction
public StaticElementInfo getStaticElementInfo()
public int getClassObjectRef()
public Instruction execute(ThreadInfo ti)
Instruction
execute
in interface InstructionInterface
execute
in class Instruction
public MethodInfo getInvokedMethod()
getInvokedMethod
in class JVMInvokeInstruction
public MethodInfo getInvokedMethod(ThreadInfo ti)
getInvokedMethod
in class JVMInvokeInstruction
public ClassInfo getInvokedClassInfo()
public java.lang.String getInvokedClassName()
public int getArgSize()
JVMInvokeInstruction
getArgSize
in class JVMInvokeInstruction
public java.lang.String toString()
toString
in class Instruction
public java.lang.Object getFieldValue(java.lang.String id, ThreadInfo ti)
getFieldValue
in class JVMInvokeInstruction
public void accept(JVMInstructionVisitor insVisitor)
accept
in interface JVMInstruction
accept
in class JVMInvokeInstruction
public Instruction typeSafeClone(MethodInfo mi)
Instruction
typeSafeClone
in class JVMInvokeInstruction