private MethodVisitor methodVisitor;
private LocalVariable[] parameters;
private int localVariableCount = 0;
+ private int currentLineNumber = -1;
public MethodBuilderBase(ClassBuilder classBuilder, boolean isStatic, MethodVisitor methodVisitor, TypeDesc[] parameterTypes) {
this.classBuilder = classBuilder;
methodVisitor.visitLdcInsn(Type.getType(value.getDescriptor()));
}
+
+ public int lineNumber(int lineNumber) {
+ if(lineNumber != currentLineNumber) {
+ int oldLineNumber = currentLineNumber;
+ Label label = createLabel();
+ setLocation(label);
+ methodVisitor.visitLineNumber(lineNumber, label);
+ currentLineNumber = lineNumber;
+ return oldLineNumber;
+ }
+ else
+ return currentLineNumber;
+ }
+
public void dup() {
methodVisitor.visitInsn(Opcodes.DUP);
}