class net.sf.cglib.proxy.MixinEmitter extends net.sf.cglib.core.ClassEmitter
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: net.sf.cglib.proxy.MixinEmitter
super_class: net.sf.cglib.core.ClassEmitter
{
private static final java.lang.String FIELD_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$DELEGATES"
private static final net.sf.cglib.core.Signature CSTRUCT_OBJECT_ARRAY;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type MIXIN;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature NEW_INSTANCE;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=0, args_size=0
0: ldc "Object[]"
invokestatic net.sf.cglib.core.TypeUtils.parseConstructor:(Ljava/lang/String;)Lnet/sf/cglib/core/Signature;
1: putstatic net.sf.cglib.proxy.MixinEmitter.CSTRUCT_OBJECT_ARRAY:Lnet/sf/cglib/core/Signature;
2: ldc "net.sf.cglib.proxy.Mixin"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
3: putstatic net.sf.cglib.proxy.MixinEmitter.MIXIN:Lorg/objectweb/asm/Type;
4: new net.sf.cglib.core.Signature
dup
ldc "newInstance"
getstatic net.sf.cglib.proxy.MixinEmitter.MIXIN:Lorg/objectweb/asm/Type;
iconst_1
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic net.sf.cglib.core.Constants.TYPE_OBJECT_ARRAY:Lorg/objectweb/asm/Type;
aastore
invokespecial net.sf.cglib.core.Signature.<init>:(Ljava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;)V
5: putstatic net.sf.cglib.proxy.MixinEmitter.NEW_INSTANCE:Lnet/sf/cglib/core/Signature;
6: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.objectweb.asm.ClassVisitor, java.lang.String, java.lang.Class[], int[]);
descriptor: (Lorg/objectweb/asm/ClassVisitor;Ljava/lang/String;[Ljava/lang/Class;[I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
invokespecial net.sf.cglib.core.ClassEmitter.<init>:(Lorg/objectweb/asm/ClassVisitor;)V
1: aload 0
bipush 52
2: iconst_1
3: aload 2
4: getstatic net.sf.cglib.proxy.MixinEmitter.MIXIN:Lorg/objectweb/asm/Type;
5: aload 0
aload 3
invokevirtual net.sf.cglib.proxy.MixinEmitter.getInterfaces:([Ljava/lang/Class;)[Ljava/lang/Class;
invokestatic net.sf.cglib.core.TypeUtils.getTypes:([Ljava/lang/Class;)[Lorg/objectweb/asm/Type;
6: ldc "<generated>"
7: invokevirtual net.sf.cglib.proxy.MixinEmitter.begin_class:(IILjava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;Ljava/lang/String;)V
8: aload 0
invokestatic net.sf.cglib.core.EmitUtils.null_constructor:(Lnet/sf/cglib/core/ClassEmitter;)V
9: aload 0
getstatic net.sf.cglib.proxy.MixinEmitter.NEW_INSTANCE:Lnet/sf/cglib/core/Signature;
invokestatic net.sf.cglib.core.EmitUtils.factory_method:(Lnet/sf/cglib/core/ClassEmitter;Lnet/sf/cglib/core/Signature;)V
10: aload 0
iconst_2
ldc "CGLIB$DELEGATES"
getstatic net.sf.cglib.core.Constants.TYPE_OBJECT_ARRAY:Lorg/objectweb/asm/Type;
aconst_null
invokevirtual net.sf.cglib.proxy.MixinEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
11: aload 0
iconst_1
getstatic net.sf.cglib.proxy.MixinEmitter.CSTRUCT_OBJECT_ARRAY:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.proxy.MixinEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 5
start local 5 12: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
13: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.super_invoke_constructor:()V
14: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
15: aload 5
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
16: aload 5
ldc "CGLIB$DELEGATES"
invokevirtual net.sf.cglib.core.CodeEmitter.putfield:(Ljava/lang/String;)V
17: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
18: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
19: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 6
start local 6 20: iconst_0
istore 7
start local 7 21: goto 44
22: StackMap locals: net.sf.cglib.proxy.MixinEmitter org.objectweb.asm.ClassVisitor java.lang.String java.lang.Class[] int[] net.sf.cglib.core.CodeEmitter java.util.Set int
StackMap stack:
aload 0
aload 3
iload 7
aaload
invokevirtual net.sf.cglib.proxy.MixinEmitter.getMethods:(Ljava/lang/Class;)[Ljava/lang/reflect/Method;
astore 8
start local 8 23: iconst_0
istore 9
start local 9 24: goto 42
25: StackMap locals: java.lang.reflect.Method[] int
StackMap stack:
aload 6
aload 8
iload 9
aaload
invokestatic net.sf.cglib.core.MethodWrapper.create:(Ljava/lang/reflect/Method;)Ljava/lang/Object;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
ifeq 41
26: aload 8
iload 9
aaload
invokestatic net.sf.cglib.core.ReflectUtils.getMethodInfo:(Ljava/lang/reflect/Member;)Lnet/sf/cglib/core/MethodInfo;
astore 10
start local 10 27: iconst_1
istore 11
start local 11 28: aload 10
invokevirtual net.sf.cglib.core.MethodInfo.getModifiers:()I
sipush 128
iand
sipush 128
if_icmpne 30
29: iload 11
sipush 128
ior
istore 11
30: StackMap locals: net.sf.cglib.core.MethodInfo int
StackMap stack:
aload 0
aload 10
iload 11
invokestatic net.sf.cglib.core.EmitUtils.begin_method:(Lnet/sf/cglib/core/ClassEmitter;Lnet/sf/cglib/core/MethodInfo;I)Lnet/sf/cglib/core/CodeEmitter;
astore 5
31: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
32: aload 5
ldc "CGLIB$DELEGATES"
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
33: aload 5
aload 4
ifnull 34
aload 4
iload 7
iaload
goto 35
StackMap locals:
StackMap stack: net.sf.cglib.core.CodeEmitter
34: iload 7
StackMap locals: net.sf.cglib.proxy.MixinEmitter org.objectweb.asm.ClassVisitor java.lang.String java.lang.Class[] int[] net.sf.cglib.core.CodeEmitter java.util.Set int java.lang.reflect.Method[] int net.sf.cglib.core.MethodInfo int
StackMap stack: net.sf.cglib.core.CodeEmitter int
35: invokevirtual net.sf.cglib.core.CodeEmitter.aaload:(I)V
36: aload 5
aload 10
invokevirtual net.sf.cglib.core.MethodInfo.getClassInfo:()Lnet/sf/cglib/core/ClassInfo;
invokevirtual net.sf.cglib.core.ClassInfo.getType:()Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
37: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.load_args:()V
38: aload 5
aload 10
invokevirtual net.sf.cglib.core.CodeEmitter.invoke:(Lnet/sf/cglib/core/MethodInfo;)V
39: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
40: aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
end local 11 end local 10 41: StackMap locals:
StackMap stack:
iinc 9 1
StackMap locals:
StackMap stack:
42: iload 9
aload 8
arraylength
if_icmplt 25
end local 9 end local 8 43: iinc 7 1
StackMap locals:
StackMap stack:
44: iload 7
aload 3
arraylength
if_icmplt 22
end local 7 45: aload 0
invokevirtual net.sf.cglib.proxy.MixinEmitter.end_class:()V
46: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 47 0 this Lnet/sf/cglib/proxy/MixinEmitter;
0 47 1 v Lorg/objectweb/asm/ClassVisitor;
0 47 2 className Ljava/lang/String;
0 47 3 classes [Ljava/lang/Class;
0 47 4 route [I
12 47 5 e Lnet/sf/cglib/core/CodeEmitter;
20 47 6 unique Ljava/util/Set;
21 45 7 i I
23 43 8 methods [Ljava/lang/reflect/Method;
24 43 9 j I
27 41 10 method Lnet/sf/cglib/core/MethodInfo;
28 41 11 modifiers I
MethodParameters:
Name Flags
v
className
classes
route
protected java.lang.Class[] getInterfaces(java.lang.Class[]);
descriptor: ([Ljava/lang/Class;)[Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/sf/cglib/proxy/MixinEmitter;
0 1 1 classes [Ljava/lang/Class;
MethodParameters:
Name Flags
classes
protected java.lang.reflect.Method[] getMethods(java.lang.Class);
descriptor: (Ljava/lang/Class;)[Ljava/lang/reflect/Method;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual java.lang.Class.getMethods:()[Ljava/lang/reflect/Method;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lnet/sf/cglib/proxy/MixinEmitter;
0 1 1 type Ljava/lang/Class;
MethodParameters:
Name Flags
type
}
SourceFile: "MixinEmitter.java"