public class MULTIANEWARRAY extends Instruction implements JVMInstruction
| Modifier and Type | Field and Description |
|---|---|
protected int[] |
arrayLengths |
protected int |
dimensions |
protected java.lang.String |
type |
attr, insnIndex, mi, position| Constructor and Description |
|---|
MULTIANEWARRAY(java.lang.String typeName,
int dimensions) |
| Modifier and Type | Method and Description |
|---|---|
void |
accept(JVMInstructionVisitor insVisitor) |
static int |
allocateArray(Heap heap,
java.lang.String type,
int[] dim,
ThreadInfo ti,
int d) |
void |
cleanupTransients()
this method can be overridden if instruction classes have to store
information for instructionExecuted() notifications, and this information
should not be stored persistent to avoid memory leaks (e.g.
|
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 |
getArrayLength(int dimension) |
int |
getByteCode() |
int |
getDimensions() |
int |
getLength()
return the length in bytes of this instruction.
|
java.lang.String |
getType() |
addAttr, asInstruction, attrIterator, attrIterator, getAttr, getAttr, getFileLocation, getFilePos, getInstructionIndex, getLineNumber, getMethodInfo, getMnemonic, getNext, getNext, getNextAttr, getPosition, getPrev, getSourceLine, getSourceLocation, getSourceOrLocation, hasAttr, hasAttr, init, isBackJump, isCompleted, isExtendedInstruction, isFirstInstruction, isMonitorEnterPrologue, isSchedulingRelevant, removeAttr, replaceAttr, requiresClinitExecution, setAttr, setContext, setLocation, setMethodInfo, toPostExecString, toString, typeSafeCloneclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitasInstruction, 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, setAttrprotected java.lang.String type
protected int dimensions
protected int[] arrayLengths
public static int allocateArray(Heap heap, java.lang.String type, int[] dim, ThreadInfo ti, int d)
public Instruction execute(ThreadInfo ti)
Instructionexecute in interface InstructionInterfaceexecute in class Instructionpublic int getLength()
InstructiongetLength in interface InstructionInterfacegetLength in class Instructionpublic int getByteCode()
getByteCode in interface InstructionInterfacepublic void accept(JVMInstructionVisitor insVisitor)
accept in interface JVMInstructionpublic java.lang.String getType()
public int getDimensions()
public int getArrayLength(int dimension)
public void cleanupTransients()
InstructioncleanupTransients in class Instruction