org.objectweb.asm.commons
public class LocalVariablesSorter extends MethodAdapter
MethodAdapter
that renumbers local variables in their order of
appearance. This adapter allows one to easily add new local variables to a
method.Modifier and Type | Field and Description |
---|---|
protected int |
firstLocal |
mv
Constructor and Description |
---|
LocalVariablesSorter(int access,
String desc,
MethodVisitor mv) |
Modifier and Type | Method and Description |
---|---|
protected int |
newLocal(int size) |
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.
|
visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLookupSwitchInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn
public LocalVariablesSorter(int access, String desc, MethodVisitor mv)
public void visitVarInsn(int opcode, int var)
MethodVisitor
visitVarInsn
in interface MethodVisitor
visitVarInsn
in class MethodAdapter
opcode
- 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
visitIincInsn
in interface MethodVisitor
visitIincInsn
in class MethodAdapter
var
- index of the local variable to be incremented.increment
- amount to increment the local variable by.public void visitMaxs(int maxStack, int maxLocals)
MethodVisitor
visitMaxs
in interface MethodVisitor
visitMaxs
in class MethodAdapter
maxStack
- 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
visitLocalVariable
in interface MethodVisitor
visitLocalVariable
in class MethodAdapter
name
- 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.protected int newLocal(int size)