class net.sf.cglib.proxy.Enhancer$6 implements net.sf.cglib.proxy.CallbackGenerator$Context
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: net.sf.cglib.proxy.Enhancer$6
  super_class: java.lang.Object
{
  final net.sf.cglib.proxy.Enhancer this$0;
    descriptor: Lnet/sf/cglib/proxy/Enhancer;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private final java.util.Map val$originalModifiers;
    descriptor: Ljava/util/Map;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final java.util.Map val$indexes;
    descriptor: Ljava/util/Map;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final java.util.Map val$positions;
    descriptor: Ljava/util/Map;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  private final java.util.Map val$bridgeToTarget;
    descriptor: Ljava/util/Map;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  void <init>(net.sf.cglib.proxy.Enhancer, java.util.Map, java.util.Map, java.util.Map, java.util.Map);
    descriptor: (Lnet/sf/cglib/proxy/Enhancer;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // net.sf.cglib.proxy.Enhancer$6 this
         0: .line 1142
            aload 0 /* this */
            aload 1
            putfield net.sf.cglib.proxy.Enhancer$6.this$0:Lnet/sf/cglib/proxy/Enhancer;
            aload 0 /* this */
            aload 2
            putfield net.sf.cglib.proxy.Enhancer$6.val$originalModifiers:Ljava/util/Map;
            aload 0 /* this */
            aload 3
            putfield net.sf.cglib.proxy.Enhancer$6.val$indexes:Ljava/util/Map;
            aload 0 /* this */
            aload 4
            putfield net.sf.cglib.proxy.Enhancer$6.val$positions:Ljava/util/Map;
            aload 0 /* this */
            aload 5
            putfield net.sf.cglib.proxy.Enhancer$6.val$bridgeToTarget:Ljava/util/Map;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // net.sf.cglib.proxy.Enhancer$6 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/sf/cglib/proxy/Enhancer$6;
    MethodParameters:
                       Name  Flags
      this$0                 final
      val$originalModifiers  final
      val$indexes            final
      val$positions          final
      val$bridgeToTarget     final

  public java.lang.ClassLoader getClassLoader();
    descriptor: ()Ljava/lang/ClassLoader;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // net.sf.cglib.proxy.Enhancer$6 this
         0: .line 1144
            aload 0 /* this */
            getfield net.sf.cglib.proxy.Enhancer$6.this$0:Lnet/sf/cglib/proxy/Enhancer;
            invokevirtual net.sf.cglib.proxy.Enhancer.getClassLoader:()Ljava/lang/ClassLoader;
            areturn
        end local 0 // net.sf.cglib.proxy.Enhancer$6 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lnet/sf/cglib/proxy/Enhancer$6;

  public int getOriginalModifiers(net.sf.cglib.core.MethodInfo);
    descriptor: (Lnet/sf/cglib/core/MethodInfo;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // net.sf.cglib.proxy.Enhancer$6 this
        start local 1 // net.sf.cglib.core.MethodInfo method
         0: .line 1147
            aload 0 /* this */
            getfield net.sf.cglib.proxy.Enhancer$6.val$originalModifiers:Ljava/util/Map;
            aload 1 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 1 // net.sf.cglib.core.MethodInfo method
        end local 0 // net.sf.cglib.proxy.Enhancer$6 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lnet/sf/cglib/proxy/Enhancer$6;
            0    1     1  method  Lnet/sf/cglib/core/MethodInfo;
    MethodParameters:
        Name  Flags
      method  

  public int getIndex(net.sf.cglib.core.MethodInfo);
    descriptor: (Lnet/sf/cglib/core/MethodInfo;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // net.sf.cglib.proxy.Enhancer$6 this
        start local 1 // net.sf.cglib.core.MethodInfo method
         0: .line 1150
            aload 0 /* this */
            getfield net.sf.cglib.proxy.Enhancer$6.val$indexes:Ljava/util/Map;
            aload 1 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            ireturn
        end local 1 // net.sf.cglib.core.MethodInfo method
        end local 0 // net.sf.cglib.proxy.Enhancer$6 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lnet/sf/cglib/proxy/Enhancer$6;
            0    1     1  method  Lnet/sf/cglib/core/MethodInfo;
    MethodParameters:
        Name  Flags
      method  

  public void emitCallback(net.sf.cglib.core.CodeEmitter, int);
    descriptor: (Lnet/sf/cglib/core/CodeEmitter;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // net.sf.cglib.proxy.Enhancer$6 this
        start local 1 // net.sf.cglib.core.CodeEmitter e
        start local 2 // int index
         0: .line 1153
            aload 0 /* this */
            getfield net.sf.cglib.proxy.Enhancer$6.this$0:Lnet/sf/cglib/proxy/Enhancer;
            aload 1 /* e */
            iload 2 /* index */
            invokevirtual net.sf.cglib.proxy.Enhancer.emitCurrentCallback:(Lnet/sf/cglib/core/CodeEmitter;I)V
         1: .line 1154
            return
        end local 2 // int index
        end local 1 // net.sf.cglib.core.CodeEmitter e
        end local 0 // net.sf.cglib.proxy.Enhancer$6 this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Lnet/sf/cglib/proxy/Enhancer$6;
            0    2     1      e  Lnet/sf/cglib/core/CodeEmitter;
            0    2     2  index  I
    MethodParameters:
       Name  Flags
      e      
      index  

  public net.sf.cglib.core.Signature getImplSignature(net.sf.cglib.core.MethodInfo);
    descriptor: (Lnet/sf/cglib/core/MethodInfo;)Lnet/sf/cglib/core/Signature;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // net.sf.cglib.proxy.Enhancer$6 this
        start local 1 // net.sf.cglib.core.MethodInfo method
         0: .line 1156
            aload 0 /* this */
            getfield net.sf.cglib.proxy.Enhancer$6.this$0:Lnet/sf/cglib/proxy/Enhancer;
            aload 1 /* method */
            invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
            aload 0 /* this */
            getfield net.sf.cglib.proxy.Enhancer$6.val$positions:Ljava/util/Map;
            aload 1 /* method */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokevirtual net.sf.cglib.proxy.Enhancer.rename:(Lnet/sf/cglib/core/Signature;I)Lnet/sf/cglib/core/Signature;
            areturn
        end local 1 // net.sf.cglib.core.MethodInfo method
        end local 0 // net.sf.cglib.proxy.Enhancer$6 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lnet/sf/cglib/proxy/Enhancer$6;
            0    1     1  method  Lnet/sf/cglib/core/MethodInfo;
    MethodParameters:
        Name  Flags
      method  

  public void emitLoadArgsAndInvoke(net.sf.cglib.core.CodeEmitter, net.sf.cglib.core.MethodInfo);
    descriptor: (Lnet/sf/cglib/core/CodeEmitter;Lnet/sf/cglib/core/MethodInfo;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=3
        start local 0 // net.sf.cglib.proxy.Enhancer$6 this
        start local 1 // net.sf.cglib.core.CodeEmitter e
        start local 2 // net.sf.cglib.core.MethodInfo method
         0: .line 1163
            aload 0 /* this */
            getfield net.sf.cglib.proxy.Enhancer$6.val$bridgeToTarget:Ljava/util/Map;
            aload 2 /* method */
            invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast net.sf.cglib.core.Signature
            astore 3 /* bridgeTarget */
        start local 3 // net.sf.cglib.core.Signature bridgeTarget
         1: .line 1164
            aload 3 /* bridgeTarget */
            ifnull 15
         2: .line 1166
            iconst_0
            istore 4 /* i */
        start local 4 // int i
         3: goto 9
         4: .line 1167
      StackMap locals: net.sf.cglib.core.Signature int
      StackMap stack:
            aload 1 /* e */
            iload 4 /* i */
            invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
         5: .line 1168
            aload 3 /* bridgeTarget */
            invokevirtual net.sf.cglib.core.Signature.getArgumentTypes:()[Lorg/objectweb/asm/Type;
            iload 4 /* i */
            aaload
            astore 5 /* target */
        start local 5 // org.objectweb.asm.Type target
         6: .line 1169
            aload 5 /* target */
            aload 2 /* method */
            invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
            invokevirtual net.sf.cglib.core.Signature.getArgumentTypes:()[Lorg/objectweb/asm/Type;
            iload 4 /* i */
            aaload
            invokevirtual org.objectweb.asm.Type.equals:(Ljava/lang/Object;)Z
            ifne 8
         7: .line 1170
            aload 1 /* e */
            aload 5 /* target */
            invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
        end local 5 // org.objectweb.asm.Type target
         8: .line 1166
      StackMap locals:
      StackMap stack:
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 4 /* i */
            aload 3 /* bridgeTarget */
            invokevirtual net.sf.cglib.core.Signature.getArgumentTypes:()[Lorg/objectweb/asm/Type;
            arraylength
            if_icmplt 4
        end local 4 // int i
        10: .line 1174
            aload 1 /* e */
            aload 3 /* bridgeTarget */
            invokevirtual net.sf.cglib.core.CodeEmitter.invoke_virtual_this:(Lnet/sf/cglib/core/Signature;)V
        11: .line 1176
            aload 2 /* method */
            invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
            invokevirtual net.sf.cglib.core.Signature.getReturnType:()Lorg/objectweb/asm/Type;
            astore 4 /* retType */
        start local 4 // org.objectweb.asm.Type retType
        12: .line 1187
            aload 4 /* retType */
            aload 3 /* bridgeTarget */
            invokevirtual net.sf.cglib.core.Signature.getReturnType:()Lorg/objectweb/asm/Type;
            invokevirtual org.objectweb.asm.Type.equals:(Ljava/lang/Object;)Z
            ifne 17
        13: .line 1188
            aload 1 /* e */
            aload 4 /* retType */
            invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
        end local 4 // org.objectweb.asm.Type retType
        14: .line 1190
            goto 17
        15: .line 1191
      StackMap locals:
      StackMap stack:
            aload 1 /* e */
            invokevirtual net.sf.cglib.core.CodeEmitter.load_args:()V
        16: .line 1192
            aload 1 /* e */
            aload 2 /* method */
            invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
            invokevirtual net.sf.cglib.core.CodeEmitter.super_invoke:(Lnet/sf/cglib/core/Signature;)V
        17: .line 1194
      StackMap locals:
      StackMap stack:
            return
        end local 3 // net.sf.cglib.core.Signature bridgeTarget
        end local 2 // net.sf.cglib.core.MethodInfo method
        end local 1 // net.sf.cglib.core.CodeEmitter e
        end local 0 // net.sf.cglib.proxy.Enhancer$6 this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   18     0          this  Lnet/sf/cglib/proxy/Enhancer$6;
            0   18     1             e  Lnet/sf/cglib/core/CodeEmitter;
            0   18     2        method  Lnet/sf/cglib/core/MethodInfo;
            1   18     3  bridgeTarget  Lnet/sf/cglib/core/Signature;
            3   10     4             i  I
            6    8     5        target  Lorg/objectweb/asm/Type;
           12   14     4       retType  Lorg/objectweb/asm/Type;
    MethodParameters:
        Name  Flags
      e       
      method  

  public net.sf.cglib.core.CodeEmitter beginMethod(net.sf.cglib.core.ClassEmitter, net.sf.cglib.core.MethodInfo);
    descriptor: (Lnet/sf/cglib/core/ClassEmitter;Lnet/sf/cglib/core/MethodInfo;)Lnet/sf/cglib/core/CodeEmitter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // net.sf.cglib.proxy.Enhancer$6 this
        start local 1 // net.sf.cglib.core.ClassEmitter ce
        start local 2 // net.sf.cglib.core.MethodInfo method
         0: .line 1196
            aload 1 /* ce */
            aload 2 /* method */
            invokestatic net.sf.cglib.core.EmitUtils.begin_method:(Lnet/sf/cglib/core/ClassEmitter;Lnet/sf/cglib/core/MethodInfo;)Lnet/sf/cglib/core/CodeEmitter;
            astore 3 /* e */
        start local 3 // net.sf.cglib.core.CodeEmitter e
         1: .line 1197
            aload 0 /* this */
            getfield net.sf.cglib.proxy.Enhancer$6.this$0:Lnet/sf/cglib/proxy/Enhancer;
            getfield net.sf.cglib.proxy.Enhancer.interceptDuringConstruction:Z
            ifne 12
         2: .line 1198
            aload 2 /* method */
            invokevirtual net.sf.cglib.core.MethodInfo.getModifiers:()I
            invokestatic net.sf.cglib.core.TypeUtils.isAbstract:(I)Z
            ifne 12
         3: .line 1199
            aload 3 /* e */
            invokevirtual net.sf.cglib.core.CodeEmitter.make_label:()Lorg/objectweb/asm/Label;
            astore 4 /* constructed */
        start local 4 // org.objectweb.asm.Label constructed
         4: .line 1200
            aload 3 /* e */
            invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
         5: .line 1201
            aload 3 /* e */
            ldc "CGLIB$CONSTRUCTED"
            invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
         6: .line 1202
            aload 3 /* e */
            sipush 154
            aload 4 /* constructed */
            invokevirtual net.sf.cglib.core.CodeEmitter.if_jump:(ILorg/objectweb/asm/Label;)V
         7: .line 1203
            aload 3 /* e */
            invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
         8: .line 1204
            aload 3 /* e */
            invokevirtual net.sf.cglib.core.CodeEmitter.load_args:()V
         9: .line 1205
            aload 3 /* e */
            invokevirtual net.sf.cglib.core.CodeEmitter.super_invoke:()V
        10: .line 1206
            aload 3 /* e */
            invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
        11: .line 1207
            aload 3 /* e */
            aload 4 /* constructed */
            invokevirtual net.sf.cglib.core.CodeEmitter.mark:(Lorg/objectweb/asm/Label;)V
        end local 4 // org.objectweb.asm.Label constructed
        12: .line 1209
      StackMap locals: net.sf.cglib.core.CodeEmitter
      StackMap stack:
            aload 3 /* e */
            areturn
        end local 3 // net.sf.cglib.core.CodeEmitter e
        end local 2 // net.sf.cglib.core.MethodInfo method
        end local 1 // net.sf.cglib.core.ClassEmitter ce
        end local 0 // net.sf.cglib.proxy.Enhancer$6 this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   13     0         this  Lnet/sf/cglib/proxy/Enhancer$6;
            0   13     1           ce  Lnet/sf/cglib/core/ClassEmitter;
            0   13     2       method  Lnet/sf/cglib/core/MethodInfo;
            1   13     3            e  Lnet/sf/cglib/core/CodeEmitter;
            4   12     4  constructed  Lorg/objectweb/asm/Label;
    MethodParameters:
        Name  Flags
      ce      
      method  
}
SourceFile: "Enhancer.java"
EnclosingMethod: net.sf.cglib.proxy.Enhancer.emitMethods:(Lnet/sf/cglib/core/ClassEmitter;Ljava/util/List;Ljava/util/List;)V
NestHost: net.sf.cglib.proxy.Enhancer
InnerClasses:
  public abstract Context = net.sf.cglib.proxy.CallbackGenerator$Context of net.sf.cglib.proxy.CallbackGenerator
  net.sf.cglib.proxy.Enhancer$6