|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||
java.lang.Objectorg.objectweb.asm.MethodAdapter
org.objectweb.asm.commons.LocalVariablesSorter
public class LocalVariablesSorter
A MethodAdapter that renumbers local variables in their order of
appearance. This adapter allows one to easily add new local variables to a
method. It may be used by inheriting from this class, but the preferred way
of using it is via delegation: the next visitor in the chain can indeed add
new locals when needed by calling newLocal(org.objectweb.asm.Type) on this adapter (this
requires a reference back to this LocalVariablesSorter).
| 字段摘要 | |
|---|---|
protected int |
firstLocal
Index of the first local variable, after formal parameters. |
protected int |
nextLocal
Index of the next local variable to be created by newLocal(org.objectweb.asm.Type). |
| 从类 org.objectweb.asm.MethodAdapter 继承的字段 |
|---|
mv |
| 构造方法摘要 | |
|---|---|
LocalVariablesSorter(int access,
String desc,
MethodVisitor mv)
Creates a new LocalVariablesSorter. |
|
| 方法摘要 | |
|---|---|
int |
newLocal(Type type)
Creates a new local variable of the given type. |
protected int |
newLocalMapping(Type type)
|
protected void |
setLocalType(int local,
Type type)
Sets the current type of the given local variable. |
void |
visitFrame(int type,
int nLocal,
Object[] local,
int nStack,
Object[] stack)
Visits the current state of the local variables and operand stack elements. |
void |
visitIincInsn(int var,
int increment)
Visits an IINC instruction. |
void |
visitLocalVariable(String name,
String desc,
String signature,
Label start,
Label end,
int index)
Visits a local variable declaration. |
void |
visitMaxs(int maxStack,
int maxLocals)
Visits the maximum stack size and the maximum number of local variables of the method. |
void |
visitVarInsn(int opcode,
int var)
Visits a local variable instruction. |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 字段详细信息 |
|---|
protected final int firstLocal
protected int nextLocal
newLocal(org.objectweb.asm.Type).
| 构造方法详细信息 |
|---|
public LocalVariablesSorter(int access,
String desc,
MethodVisitor mv)
LocalVariablesSorter.
access - access flags of the adapted method.desc - the method's descriptor (see Type).mv - the method visitor to which this adapter delegates calls.| 方法详细信息 |
|---|
public void visitVarInsn(int opcode,
int var)
MethodVisitor 复制的描述
MethodVisitor 中的 visitVarInsnMethodAdapter 中的 visitVarInsnopcode - the opcode of the local variable instruction to be visited.
This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE,
LSTORE, FSTORE, DSTORE, ASTORE or RET.var - the operand of the instruction to be visited. This operand is
the index of a local variable.
public void visitIincInsn(int var,
int increment)
MethodVisitor 复制的描述
MethodVisitor 中的 visitIincInsnMethodAdapter 中的 visitIincInsnvar - index of the local variable to be incremented.increment - amount to increment the local variable by.
public void visitMaxs(int maxStack,
int maxLocals)
MethodVisitor 复制的描述
MethodVisitor 中的 visitMaxsMethodAdapter 中的 visitMaxsmaxStack - maximum stack size of the method.maxLocals - maximum number of local variables for the method.
public void visitLocalVariable(String name,
String desc,
String signature,
Label start,
Label end,
int index)
MethodVisitor 复制的描述
MethodVisitor 中的 visitLocalVariableMethodAdapter 中的 visitLocalVariablename - the name of a local variable.desc - the type descriptor of this local variable.signature - the type signature of this local variable. May be
null if the local variable type does not use generic
types.start - the first instruction corresponding to the scope of this
local variable (inclusive).end - the last instruction corresponding to the scope of this local
variable (exclusive).index - the local variable's index.
public void visitFrame(int type,
int nLocal,
Object[] local,
int nStack,
Object[] stack)
MethodVisitor 复制的描述V1_6. Opcodes.F_SAME representing frame with exactly the same
locals as the previous frame and with the empty stack.Opcodes.F_SAME1
representing frame with exactly the same locals as the previous frame and
with single value on the stack (nStack is 1 and
stack[0] contains value for the type of the stack item).Opcodes.F_APPEND representing frame with current locals are
the same as the locals in the previous frame, except that additional
locals are defined (nLocal is 1, 2 or 3 and
local elements contains values representing added types).Opcodes.F_CHOP representing frame with current locals are
the same as the locals in the previous frame, except that the last 1-3
locals are absent and with the empty stack (nLocals is 1,
2 or 3). Opcodes.F_FULL representing complete frame
data.
MethodVisitor 中的 visitFrameMethodAdapter 中的 visitFrametype - the type of this stack map frame. Must be
Opcodes.F_NEW for expanded frames, or
Opcodes.F_FULL, Opcodes.F_APPEND,
Opcodes.F_CHOP, Opcodes.F_SAME or
Opcodes.F_APPEND, Opcodes.F_SAME1 for compressed
frames.nLocal - the number of local variables in the visited frame.local - the local variable types in this frame. This array must not
be modified. Primitive types are represented by
Opcodes.TOP, Opcodes.INTEGER,
Opcodes.FLOAT, Opcodes.LONG,
Opcodes.DOUBLE,Opcodes.NULL or
Opcodes.UNINITIALIZED_THIS (long and double are
represented by a single element). Reference types are represented
by String objects (representing internal names), and uninitialized
types by Label objects (this label designates the NEW instruction
that created this uninitialized value).nStack - the number of operand stack elements in the visited frame.stack - the operand stack types in this frame. This array must not
be modified. Its content has the same format as the "local" array.public int newLocal(Type type)
type - the type of the local variable to be created.
protected void setLocalType(int local,
Type type)
local - a local variable identifier, as returned by newLocal().type - the type of the value being stored in the local variableprotected int newLocalMapping(Type type)
|
||||||||||
| 上一个类 下一个类 | 框架 无框架 | |||||||||
| 摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 | |||||||||