Package org.springframework.cglib.core

# Class LocalVariablesSorter

java.lang.Object
org.springframework.asm.MethodVisitor
org.springframework.cglib.core.LocalVariablesSorter

Direct Known Subclasses:
  `CodeEmitter`

public class LocalVariablesSorter extends MethodVisitor
A `MethodVisitor` that renumbers local variables in their order of appearance. This adapter allows one to easily add new local variables to a method.

Author:
  Chris Nokleberg, Eric Bruneton

## Field Summary

Fields
Modifier and Type
Field
Description
`protected final int`
`firstLocal`

### Fields inherited from class org.springframework.asm.MethodVisitor

`api, mv`

## Constructor Summary

Constructors
Constructor
Description
`LocalVariablesSorter(int access, String desc, MethodVisitor mv)`
`LocalVariablesSorter(LocalVariablesSorter lvs)`

## Method Summary

Modifier and Type
Method
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.

### Methods inherited from class org.springframework.asm.MethodVisitor

`getDelegate, visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitFrame, visitInsn, visitInsnAnnotation, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariableAnnotation, visitLookupSwitchInsn, visitMethodInsn, visitMethodInsn, visitMultiANewArrayInsn, visitParameter, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation, visitTypeInsn`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Field Details

### firstLocal

protected final int firstLocal

## Constructor Details

### LocalVariablesSorter

public LocalVariablesSorter(int access, String desc, MethodVisitor mv)

### LocalVariablesSorter

public LocalVariablesSorter(LocalVariablesSorter lvs)

## Method Details

### visitVarInsn

public void visitVarInsn(int opcode, int var)
Description copied from class: `MethodVisitor`
Visits a local variable instruction. A local variable instruction is an instruction that loads or stores the value of a local variable.

Overrides:
  `visitVarInsn` in class `MethodVisitor`
Parameters:
  `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.

### visitIincInsn

public void visitIincInsn(int var, int increment)
Description copied from class: `MethodVisitor`
Visits an IINC instruction.

Overrides:
  `visitIincInsn` in class `MethodVisitor`
Parameters:
  `var` - index of the local variable to be incremented.
  `increment` - amount to increment the local variable by.

### visitMaxs

public void visitMaxs(int maxStack, int maxLocals)
Description copied from class: `MethodVisitor`
Visits the maximum stack size and the maximum number of local variables of the method.

Overrides:
  `visitMaxs` in class `MethodVisitor`
Parameters:
  `maxStack` - maximum stack size of the method.
  `maxLocals` - maximum number of local variables for the method.

### visitLocalVariable

public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index)
Description copied from class: `MethodVisitor`
Visits a local variable declaration.

Overrides:
  `visitLocalVariable` in class `MethodVisitor`
Parameters:
  `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.

### newLocal

protected int newLocal(int size)