public class net.sf.cglib.proxy.Enhancer extends net.sf.cglib.core.AbstractClassGenerator
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: net.sf.cglib.proxy.Enhancer
super_class: net.sf.cglib.core.AbstractClassGenerator
{
private static final net.sf.cglib.proxy.CallbackFilter ALL_ZERO;
descriptor: Lnet/sf/cglib/proxy/CallbackFilter;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.AbstractClassGenerator$Source SOURCE;
descriptor: Lnet/sf/cglib/core/AbstractClassGenerator$Source;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.proxy.Enhancer$EnhancerKey KEY_FACTORY;
descriptor: Lnet/sf/cglib/proxy/Enhancer$EnhancerKey;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.String BOUND_FIELD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$BOUND"
private static final java.lang.String FACTORY_DATA_FIELD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$FACTORY_DATA"
private static final java.lang.String THREAD_CALLBACKS_FIELD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$THREAD_CALLBACKS"
private static final java.lang.String STATIC_CALLBACKS_FIELD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$STATIC_CALLBACKS"
private static final java.lang.String SET_THREAD_CALLBACKS_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$SET_THREAD_CALLBACKS"
private static final java.lang.String SET_STATIC_CALLBACKS_NAME;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$SET_STATIC_CALLBACKS"
private static final java.lang.String CONSTRUCTED_FIELD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$CONSTRUCTED"
private static final java.lang.String CALLBACK_FILTER_FIELD;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "CGLIB$CALLBACK_FILTER"
private static final org.objectweb.asm.Type OBJECT_TYPE;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type FACTORY;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type ILLEGAL_STATE_EXCEPTION;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type ILLEGAL_ARGUMENT_EXCEPTION;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type THREAD_LOCAL;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type CALLBACK;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.objectweb.asm.Type CALLBACK_ARRAY;
descriptor: Lorg/objectweb/asm/Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature CSTRUCT_NULL;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature SET_THREAD_CALLBACKS;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature SET_STATIC_CALLBACKS;
descriptor: Lnet/sf/cglib/core/Signature;
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
private static final net.sf.cglib.core.Signature MULTIARG_NEW_INSTANCE;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature SINGLE_NEW_INSTANCE;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature SET_CALLBACK;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature GET_CALLBACK;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature SET_CALLBACKS;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature GET_CALLBACKS;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature THREAD_LOCAL_GET;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature THREAD_LOCAL_SET;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final net.sf.cglib.core.Signature BIND_CALLBACKS;
descriptor: Lnet/sf/cglib/core/Signature;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private net.sf.cglib.proxy.Enhancer$EnhancerFactoryData currentData;
descriptor: Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
flags: (0x0002) ACC_PRIVATE
private java.lang.Object currentKey;
descriptor: Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private java.lang.Class[] interfaces;
descriptor: [Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
private net.sf.cglib.proxy.CallbackFilter filter;
descriptor: Lnet/sf/cglib/proxy/CallbackFilter;
flags: (0x0002) ACC_PRIVATE
private net.sf.cglib.proxy.Callback[] callbacks;
descriptor: [Lnet/sf/cglib/proxy/Callback;
flags: (0x0002) ACC_PRIVATE
private org.objectweb.asm.Type[] callbackTypes;
descriptor: [Lorg/objectweb/asm/Type;
flags: (0x0002) ACC_PRIVATE
private boolean validateCallbackTypes;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean classOnly;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Class superclass;
descriptor: Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
private java.lang.Class[] argumentTypes;
descriptor: [Ljava/lang/Class;
flags: (0x0002) ACC_PRIVATE
private java.lang.Object[] arguments;
descriptor: [Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
private boolean useFactory;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.Long serialVersionUID;
descriptor: Ljava/lang/Long;
flags: (0x0002) ACC_PRIVATE
private boolean interceptDuringConstruction;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=0, args_size=0
0: new net.sf.cglib.proxy.Enhancer$1
dup
invokespecial net.sf.cglib.proxy.Enhancer$1.<init>:()V
putstatic net.sf.cglib.proxy.Enhancer.ALL_ZERO:Lnet/sf/cglib/proxy/CallbackFilter;
1: new net.sf.cglib.core.AbstractClassGenerator$Source
dup
ldc Lnet/sf/cglib/proxy/Enhancer;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokespecial net.sf.cglib.core.AbstractClassGenerator$Source.<init>:(Ljava/lang/String;)V
putstatic net.sf.cglib.proxy.Enhancer.SOURCE:Lnet/sf/cglib/core/AbstractClassGenerator$Source;
2: ldc Lnet/sf/cglib/proxy/Enhancer$EnhancerKey;
getstatic net.sf.cglib.core.KeyFactory.HASH_ASM_TYPE:Lnet/sf/cglib/core/HashCodeCustomizer;
aconst_null
invokestatic net.sf.cglib.core.KeyFactory.create:(Ljava/lang/Class;Lnet/sf/cglib/core/KeyFactoryCustomizer;Ljava/util/List;)Lnet/sf/cglib/core/KeyFactory;
checkcast net.sf.cglib.proxy.Enhancer$EnhancerKey
3: putstatic net.sf.cglib.proxy.Enhancer.KEY_FACTORY:Lnet/sf/cglib/proxy/Enhancer$EnhancerKey;
4: ldc "Object"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
5: putstatic net.sf.cglib.proxy.Enhancer.OBJECT_TYPE:Lorg/objectweb/asm/Type;
6: ldc "net.sf.cglib.proxy.Factory"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
7: putstatic net.sf.cglib.proxy.Enhancer.FACTORY:Lorg/objectweb/asm/Type;
8: ldc "IllegalStateException"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
9: putstatic net.sf.cglib.proxy.Enhancer.ILLEGAL_STATE_EXCEPTION:Lorg/objectweb/asm/Type;
10: ldc "IllegalArgumentException"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
11: putstatic net.sf.cglib.proxy.Enhancer.ILLEGAL_ARGUMENT_EXCEPTION:Lorg/objectweb/asm/Type;
12: ldc "ThreadLocal"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
13: putstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL:Lorg/objectweb/asm/Type;
14: ldc "net.sf.cglib.proxy.Callback"
invokestatic net.sf.cglib.core.TypeUtils.parseType:(Ljava/lang/String;)Lorg/objectweb/asm/Type;
15: putstatic net.sf.cglib.proxy.Enhancer.CALLBACK:Lorg/objectweb/asm/Type;
16: ldc [Lnet/sf/cglib/proxy/Callback;
invokestatic org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
17: putstatic net.sf.cglib.proxy.Enhancer.CALLBACK_ARRAY:Lorg/objectweb/asm/Type;
18: ldc ""
invokestatic net.sf.cglib.core.TypeUtils.parseConstructor:(Ljava/lang/String;)Lnet/sf/cglib/core/Signature;
19: putstatic net.sf.cglib.proxy.Enhancer.CSTRUCT_NULL:Lnet/sf/cglib/core/Signature;
20: new net.sf.cglib.core.Signature
dup
ldc "CGLIB$SET_THREAD_CALLBACKS"
getstatic org.objectweb.asm.Type.VOID_TYPE:Lorg/objectweb/asm/Type;
iconst_1
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK_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
21: putstatic net.sf.cglib.proxy.Enhancer.SET_THREAD_CALLBACKS:Lnet/sf/cglib/core/Signature;
22: new net.sf.cglib.core.Signature
dup
ldc "CGLIB$SET_STATIC_CALLBACKS"
getstatic org.objectweb.asm.Type.VOID_TYPE:Lorg/objectweb/asm/Type;
iconst_1
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK_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
23: putstatic net.sf.cglib.proxy.Enhancer.SET_STATIC_CALLBACKS:Lnet/sf/cglib/core/Signature;
24: new net.sf.cglib.core.Signature
dup
ldc "newInstance"
getstatic net.sf.cglib.core.Constants.TYPE_OBJECT:Lorg/objectweb/asm/Type;
iconst_1
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK_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
25: putstatic net.sf.cglib.proxy.Enhancer.NEW_INSTANCE:Lnet/sf/cglib/core/Signature;
26: new net.sf.cglib.core.Signature
dup
ldc "newInstance"
getstatic net.sf.cglib.core.Constants.TYPE_OBJECT:Lorg/objectweb/asm/Type;
iconst_3
anewarray org.objectweb.asm.Type
dup
iconst_0
27: getstatic net.sf.cglib.core.Constants.TYPE_CLASS_ARRAY:Lorg/objectweb/asm/Type;
aastore
dup
iconst_1
28: getstatic net.sf.cglib.core.Constants.TYPE_OBJECT_ARRAY:Lorg/objectweb/asm/Type;
aastore
dup
iconst_2
29: getstatic net.sf.cglib.proxy.Enhancer.CALLBACK_ARRAY:Lorg/objectweb/asm/Type;
aastore
30: invokespecial net.sf.cglib.core.Signature.<init>:(Ljava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;)V
31: putstatic net.sf.cglib.proxy.Enhancer.MULTIARG_NEW_INSTANCE:Lnet/sf/cglib/core/Signature;
32: new net.sf.cglib.core.Signature
dup
ldc "newInstance"
getstatic net.sf.cglib.core.Constants.TYPE_OBJECT:Lorg/objectweb/asm/Type;
iconst_1
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK:Lorg/objectweb/asm/Type;
aastore
invokespecial net.sf.cglib.core.Signature.<init>:(Ljava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;)V
33: putstatic net.sf.cglib.proxy.Enhancer.SINGLE_NEW_INSTANCE:Lnet/sf/cglib/core/Signature;
34: new net.sf.cglib.core.Signature
dup
ldc "setCallback"
getstatic org.objectweb.asm.Type.VOID_TYPE:Lorg/objectweb/asm/Type;
iconst_2
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic org.objectweb.asm.Type.INT_TYPE:Lorg/objectweb/asm/Type;
aastore
dup
iconst_1
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK:Lorg/objectweb/asm/Type;
aastore
invokespecial net.sf.cglib.core.Signature.<init>:(Ljava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;)V
35: putstatic net.sf.cglib.proxy.Enhancer.SET_CALLBACK:Lnet/sf/cglib/core/Signature;
36: new net.sf.cglib.core.Signature
dup
ldc "getCallback"
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK:Lorg/objectweb/asm/Type;
iconst_1
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic org.objectweb.asm.Type.INT_TYPE:Lorg/objectweb/asm/Type;
aastore
invokespecial net.sf.cglib.core.Signature.<init>:(Ljava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;)V
37: putstatic net.sf.cglib.proxy.Enhancer.GET_CALLBACK:Lnet/sf/cglib/core/Signature;
38: new net.sf.cglib.core.Signature
dup
ldc "setCallbacks"
getstatic org.objectweb.asm.Type.VOID_TYPE:Lorg/objectweb/asm/Type;
iconst_1
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK_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
39: putstatic net.sf.cglib.proxy.Enhancer.SET_CALLBACKS:Lnet/sf/cglib/core/Signature;
40: new net.sf.cglib.core.Signature
dup
ldc "getCallbacks"
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK_ARRAY:Lorg/objectweb/asm/Type;
iconst_0
anewarray org.objectweb.asm.Type
invokespecial net.sf.cglib.core.Signature.<init>:(Ljava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;)V
41: putstatic net.sf.cglib.proxy.Enhancer.GET_CALLBACKS:Lnet/sf/cglib/core/Signature;
42: ldc "Object get()"
invokestatic net.sf.cglib.core.TypeUtils.parseSignature:(Ljava/lang/String;)Lnet/sf/cglib/core/Signature;
43: putstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL_GET:Lnet/sf/cglib/core/Signature;
44: ldc "void set(Object)"
invokestatic net.sf.cglib.core.TypeUtils.parseSignature:(Ljava/lang/String;)Lnet/sf/cglib/core/Signature;
45: putstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL_SET:Lnet/sf/cglib/core/Signature;
46: ldc "void CGLIB$BIND_CALLBACKS(Object)"
invokestatic net.sf.cglib.core.TypeUtils.parseSignature:(Ljava/lang/String;)Lnet/sf/cglib/core/Signature;
47: putstatic net.sf.cglib.proxy.Enhancer.BIND_CALLBACKS:Lnet/sf/cglib/core/Signature;
48: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getstatic net.sf.cglib.proxy.Enhancer.SOURCE:Lnet/sf/cglib/core/AbstractClassGenerator$Source;
invokespecial net.sf.cglib.core.AbstractClassGenerator.<init>:(Lnet/sf/cglib/core/AbstractClassGenerator$Source;)V
1: aload 0
iconst_1
putfield net.sf.cglib.proxy.Enhancer.useFactory:Z
2: aload 0
iconst_1
putfield net.sf.cglib.proxy.Enhancer.interceptDuringConstruction:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lnet/sf/cglib/proxy/Enhancer;
public void setSuperclass(java.lang.Class);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 3
aload 1
invokevirtual java.lang.Class.isInterface:()Z
ifeq 3
1: aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 1
aastore
invokevirtual net.sf.cglib.proxy.Enhancer.setInterfaces:([Ljava/lang/Class;)V
2: goto 7
StackMap locals:
StackMap stack:
3: aload 1
ifnull 6
aload 1
ldc Ljava/lang/Object;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifeq 6
4: aload 0
aconst_null
putfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lnet/sf/cglib/proxy/Enhancer;
0 8 1 superclass Ljava/lang/Class;
MethodParameters:
Name Flags
superclass
public void setInterfaces(java.lang.Class[]);
descriptor: ([Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/proxy/Enhancer;
0 2 1 interfaces [Ljava/lang/Class;
MethodParameters:
Name Flags
interfaces
public void setCallbackFilter(net.sf.cglib.proxy.CallbackFilter);
descriptor: (Lnet/sf/cglib/proxy/CallbackFilter;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield net.sf.cglib.proxy.Enhancer.filter:Lnet/sf/cglib/proxy/CallbackFilter;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/proxy/Enhancer;
0 2 1 filter Lnet/sf/cglib/proxy/CallbackFilter;
MethodParameters:
Name Flags
filter
public void setCallback(net.sf.cglib.proxy.Callback);
descriptor: (Lnet/sf/cglib/proxy/Callback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
anewarray net.sf.cglib.proxy.Callback
dup
iconst_0
aload 1
aastore
invokevirtual net.sf.cglib.proxy.Enhancer.setCallbacks:([Lnet/sf/cglib/proxy/Callback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/proxy/Enhancer;
0 2 1 callback Lnet/sf/cglib/proxy/Callback;
MethodParameters:
Name Flags
callback final
public void setCallbacks(net.sf.cglib.proxy.Callback[]);
descriptor: ([Lnet/sf/cglib/proxy/Callback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
aload 1
arraylength
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "Array cannot be empty"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lnet/sf/cglib/proxy/Enhancer;
0 4 1 callbacks [Lnet/sf/cglib/proxy/Callback;
MethodParameters:
Name Flags
callbacks
public void setUseFactory(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield net.sf.cglib.proxy.Enhancer.useFactory:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/proxy/Enhancer;
0 2 1 useFactory Z
MethodParameters:
Name Flags
useFactory
public void setInterceptDuringConstruction(boolean);
descriptor: (Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield net.sf.cglib.proxy.Enhancer.interceptDuringConstruction:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/proxy/Enhancer;
0 2 1 interceptDuringConstruction Z
MethodParameters:
Name Flags
interceptDuringConstruction
public void setCallbackType(java.lang.Class);
descriptor: (Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 1
aastore
invokevirtual net.sf.cglib.proxy.Enhancer.setCallbackTypes:([Ljava/lang/Class;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/proxy/Enhancer;
0 2 1 callbackType Ljava/lang/Class;
MethodParameters:
Name Flags
callbackType
public void setCallbackTypes(java.lang.Class[]);
descriptor: ([Ljava/lang/Class;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 2
aload 1
arraylength
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "Array cannot be empty"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokestatic net.sf.cglib.proxy.CallbackInfo.determineTypes:([Ljava/lang/Class;)[Lorg/objectweb/asm/Type;
putfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lnet/sf/cglib/proxy/Enhancer;
0 4 1 callbackTypes [Ljava/lang/Class;
MethodParameters:
Name Flags
callbackTypes
public java.lang.Object create();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
putfield net.sf.cglib.proxy.Enhancer.classOnly:Z
1: aload 0
aconst_null
putfield net.sf.cglib.proxy.Enhancer.argumentTypes:[Ljava/lang/Class;
2: aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.createHelper:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lnet/sf/cglib/proxy/Enhancer;
public java.lang.Object create(java.lang.Class[], java.lang.Object[]);
descriptor: ([Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_0
putfield net.sf.cglib.proxy.Enhancer.classOnly:Z
1: aload 1
ifnull 2
aload 2
ifnull 2
aload 1
arraylength
aload 2
arraylength
if_icmpeq 3
2: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Arguments must be non-null and of equal length"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield net.sf.cglib.proxy.Enhancer.argumentTypes:[Ljava/lang/Class;
4: aload 0
aload 2
putfield net.sf.cglib.proxy.Enhancer.arguments:[Ljava/lang/Object;
5: aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.createHelper:()Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lnet/sf/cglib/proxy/Enhancer;
0 6 1 argumentTypes [Ljava/lang/Class;
0 6 2 arguments [Ljava/lang/Object;
MethodParameters:
Name Flags
argumentTypes
arguments
public java.lang.Class createClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield net.sf.cglib.proxy.Enhancer.classOnly:Z
1: aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.createHelper:()Ljava/lang/Object;
checkcast java.lang.Class
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/proxy/Enhancer;
public void setSerialVersionUID(java.lang.Long);
descriptor: (Ljava/lang/Long;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield net.sf.cglib.proxy.Enhancer.serialVersionUID:Ljava/lang/Long;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lnet/sf/cglib/proxy/Enhancer;
0 2 1 sUID Ljava/lang/Long;
MethodParameters:
Name Flags
sUID
private void preValidate();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
ifnonnull 3
1: aload 0
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
iconst_0
invokestatic net.sf.cglib.proxy.CallbackInfo.determineTypes:([Lnet/sf/cglib/proxy/Callback;Z)[Lorg/objectweb/asm/Type;
putfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
2: aload 0
iconst_1
putfield net.sf.cglib.proxy.Enhancer.validateCallbackTypes:Z
3: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.filter:Lnet/sf/cglib/proxy/CallbackFilter;
ifnonnull 7
4: aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
iconst_1
if_icmple 6
5: new java.lang.IllegalStateException
dup
ldc "Multiple callback types possible but no filter specified"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getstatic net.sf.cglib.proxy.Enhancer.ALL_ZERO:Lnet/sf/cglib/proxy/CallbackFilter;
putfield net.sf.cglib.proxy.Enhancer.filter:Lnet/sf/cglib/proxy/CallbackFilter;
7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lnet/sf/cglib/proxy/Enhancer;
private void validate();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.classOnly:Z
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
ifnonnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: int
1: iconst_0
StackMap locals: net.sf.cglib.proxy.Enhancer
StackMap stack: int int
2: ixor
ifeq 6
3: aload 0
getfield net.sf.cglib.proxy.Enhancer.classOnly:Z
ifeq 5
4: new java.lang.IllegalStateException
dup
ldc "createClass does not accept callbacks"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
ldc "Callbacks are required"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.classOnly:Z
ifeq 8
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
ifnonnull 8
7: new java.lang.IllegalStateException
dup
ldc "Callback types are required"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.validateCallbackTypes:Z
ifeq 10
9: aload 0
aconst_null
putfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
10: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
ifnull 21
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
ifnull 21
11: aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
arraylength
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
if_icmpeq 13
12: new java.lang.IllegalStateException
dup
ldc "Lengths of callback and callback types array must be the same"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
13: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
invokestatic net.sf.cglib.proxy.CallbackInfo.determineTypes:([Lnet/sf/cglib/proxy/Callback;)[Lorg/objectweb/asm/Type;
astore 1
start local 1 14: iconst_0
istore 2
start local 2 15: goto 19
16: StackMap locals: org.objectweb.asm.Type[] int
StackMap stack:
aload 1
iload 2
aaload
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
iload 2
aaload
invokevirtual org.objectweb.asm.Type.equals:(Ljava/lang/Object;)Z
ifne 18
17: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
ldc "Callback "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
iload 2
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not assignable to "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
iload 2
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
19: iload 2
aload 1
arraylength
if_icmplt 16
end local 2 end local 1 20: goto 23
StackMap locals:
StackMap stack:
21: aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
ifnull 23
22: aload 0
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
invokestatic net.sf.cglib.proxy.CallbackInfo.determineTypes:([Lnet/sf/cglib/proxy/Callback;)[Lorg/objectweb/asm/Type;
putfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
23: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
ifnull 32
24: iconst_0
istore 1
start local 1 25: goto 31
26: StackMap locals: int
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
iload 1
aaload
ifnonnull 28
27: new java.lang.IllegalStateException
dup
ldc "Interfaces cannot be null"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
28: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
iload 1
aaload
invokevirtual java.lang.Class.isInterface:()Z
ifne 30
29: new java.lang.IllegalStateException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
iload 1
aaload
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not an interface"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
30: StackMap locals:
StackMap stack:
iinc 1 1
StackMap locals:
StackMap stack:
31: iload 1
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
arraylength
if_icmplt 26
end local 1 32: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lnet/sf/cglib/proxy/Enhancer;
14 20 1 check [Lorg/objectweb/asm/Type;
15 20 2 i I
25 32 1 i I
private java.lang.Object createHelper();
descriptor: ()Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.preValidate:()V
1: getstatic net.sf.cglib.proxy.Enhancer.KEY_FACTORY:Lnet/sf/cglib/proxy/Enhancer$EnhancerKey;
aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
ifnull 2
aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
goto 3
StackMap locals:
StackMap stack: net.sf.cglib.proxy.Enhancer$EnhancerKey
2: aconst_null
3: StackMap locals: net.sf.cglib.proxy.Enhancer
StackMap stack: net.sf.cglib.proxy.Enhancer$EnhancerKey java.lang.String
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
invokestatic net.sf.cglib.core.ReflectUtils.getNames:([Ljava/lang/Class;)[Ljava/lang/String;
4: aload 0
getfield net.sf.cglib.proxy.Enhancer.filter:Lnet/sf/cglib/proxy/CallbackFilter;
getstatic net.sf.cglib.proxy.Enhancer.ALL_ZERO:Lnet/sf/cglib/proxy/CallbackFilter;
if_acmpne 5
aconst_null
goto 6
StackMap locals: net.sf.cglib.proxy.Enhancer
StackMap stack: net.sf.cglib.proxy.Enhancer$EnhancerKey java.lang.String java.lang.String[]
5: new net.sf.cglib.core.WeakCacheKey
dup
aload 0
getfield net.sf.cglib.proxy.Enhancer.filter:Lnet/sf/cglib/proxy/CallbackFilter;
invokespecial net.sf.cglib.core.WeakCacheKey.<init>:(Ljava/lang/Object;)V
6: StackMap locals: net.sf.cglib.proxy.Enhancer
StackMap stack: net.sf.cglib.proxy.Enhancer$EnhancerKey java.lang.String java.lang.String[] net.sf.cglib.core.WeakCacheKey
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
7: aload 0
getfield net.sf.cglib.proxy.Enhancer.useFactory:Z
8: aload 0
getfield net.sf.cglib.proxy.Enhancer.interceptDuringConstruction:Z
9: aload 0
getfield net.sf.cglib.proxy.Enhancer.serialVersionUID:Ljava/lang/Long;
10: invokeinterface net.sf.cglib.proxy.Enhancer$EnhancerKey.newInstance:(Ljava/lang/String;[Ljava/lang/String;Lnet/sf/cglib/core/WeakCacheKey;[Lorg/objectweb/asm/Type;ZZLjava/lang/Long;)Ljava/lang/Object;
astore 1
start local 1 11: aload 0
aload 1
putfield net.sf.cglib.proxy.Enhancer.currentKey:Ljava/lang/Object;
12: aload 0
aload 1
invokespecial net.sf.cglib.core.AbstractClassGenerator.create:(Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 13: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lnet/sf/cglib/proxy/Enhancer;
11 14 1 key Ljava/lang/Object;
13 14 2 result Ljava/lang/Object;
protected java.lang.Class generate(net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData);
descriptor: (Lnet/sf/cglib/core/AbstractClassGenerator$ClassLoaderData;)Ljava/lang/Class;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.validate:()V
1: aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
ifnull 4
2: aload 0
aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual net.sf.cglib.proxy.Enhancer.setNamePrefix:(Ljava/lang/String;)V
3: goto 6
StackMap locals:
StackMap stack:
4: aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
ifnull 6
5: aload 0
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
invokestatic net.sf.cglib.core.ReflectUtils.findPackageProtected:([Ljava/lang/Class;)I
aaload
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual net.sf.cglib.proxy.Enhancer.setNamePrefix:(Ljava/lang/String;)V
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial net.sf.cglib.core.AbstractClassGenerator.generate:(Lnet/sf/cglib/core/AbstractClassGenerator$ClassLoaderData;)Ljava/lang/Class;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lnet/sf/cglib/proxy/Enhancer;
0 7 1 data Lnet/sf/cglib/core/AbstractClassGenerator$ClassLoaderData;
MethodParameters:
Name Flags
data
protected java.lang.ClassLoader getDefaultClassLoader();
descriptor: ()Ljava/lang/ClassLoader;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
ifnull 2
1: aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
ifnull 4
3: aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
iconst_0
aaload
invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lnet/sf/cglib/proxy/Enhancer;
protected java.security.ProtectionDomain getProtectionDomain();
descriptor: ()Ljava/security/ProtectionDomain;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
ifnull 2
1: aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
invokestatic net.sf.cglib.core.ReflectUtils.getProtectionDomain:(Ljava/lang/Class;)Ljava/security/ProtectionDomain;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
ifnull 4
3: aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
iconst_0
aaload
invokestatic net.sf.cglib.core.ReflectUtils.getProtectionDomain:(Ljava/lang/Class;)Ljava/security/ProtectionDomain;
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lnet/sf/cglib/proxy/Enhancer;
private net.sf.cglib.core.Signature rename(net.sf.cglib.core.Signature, int);
descriptor: (Lnet/sf/cglib/core/Signature;I)Lnet/sf/cglib/core/Signature;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new net.sf.cglib.core.Signature
dup
new java.lang.StringBuilder
dup
ldc "CGLIB$"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual net.sf.cglib.core.Signature.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "$"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
1: aload 1
invokevirtual net.sf.cglib.core.Signature.getDescriptor:()Ljava/lang/String;
2: invokespecial net.sf.cglib.core.Signature.<init>:(Ljava/lang/String;Ljava/lang/String;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lnet/sf/cglib/proxy/Enhancer;
0 3 1 sig Lnet/sf/cglib/core/Signature;
0 3 2 index I
MethodParameters:
Name Flags
sig
index
public static void getMethods(java.lang.Class, java.lang.Class[], java.util.List);
descriptor: (Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
aconst_null
aconst_null
invokestatic net.sf.cglib.proxy.Enhancer.getMethods:(Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;Ljava/util/List;Ljava/util/Set;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 superclass Ljava/lang/Class;
0 2 1 interfaces [Ljava/lang/Class;
0 2 2 methods Ljava/util/List;
MethodParameters:
Name Flags
superclass
interfaces
methods
private static void getMethods(java.lang.Class, java.lang.Class[], java.util.List, java.util.List, java.util.Set);
descriptor: (Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;Ljava/util/List;Ljava/util/Set;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 2
invokestatic net.sf.cglib.core.ReflectUtils.addAllMethods:(Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
pop
1: aload 3
ifnull 2
aload 3
goto 3
StackMap locals:
StackMap stack:
2: aload 2
StackMap locals:
StackMap stack: java.util.List
3: astore 5
start local 5 4: aload 1
ifnull 11
5: iconst_0
istore 6
start local 6 6: goto 10
7: StackMap locals: java.util.List int
StackMap stack:
aload 1
iload 6
aaload
ldc Lnet/sf/cglib/proxy/Factory;
if_acmpeq 9
8: aload 1
iload 6
aaload
aload 5
invokestatic net.sf.cglib.core.ReflectUtils.addAllMethods:(Ljava/lang/Class;Ljava/util/List;)Ljava/util/List;
pop
9: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
10: iload 6
aload 1
arraylength
if_icmplt 7
end local 6 11: StackMap locals:
StackMap stack:
aload 3
ifnull 15
12: aload 4
ifnull 14
13: aload 4
aload 3
invokestatic net.sf.cglib.core.MethodWrapper.createSet:(Ljava/util/Collection;)Ljava/util/Set;
invokeinterface java.util.Set.addAll:(Ljava/util/Collection;)Z
pop
14: StackMap locals:
StackMap stack:
aload 2
aload 3
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
15: StackMap locals:
StackMap stack:
aload 2
new net.sf.cglib.core.RejectModifierPredicate
dup
bipush 8
invokespecial net.sf.cglib.core.RejectModifierPredicate.<init>:(I)V
invokestatic net.sf.cglib.core.CollectionUtils.filter:(Ljava/util/Collection;Lnet/sf/cglib/core/Predicate;)Ljava/util/Collection;
pop
16: aload 2
new net.sf.cglib.core.VisibilityPredicate
dup
aload 0
iconst_1
invokespecial net.sf.cglib.core.VisibilityPredicate.<init>:(Ljava/lang/Class;Z)V
invokestatic net.sf.cglib.core.CollectionUtils.filter:(Ljava/util/Collection;Lnet/sf/cglib/core/Predicate;)Ljava/util/Collection;
pop
17: aload 2
new net.sf.cglib.core.DuplicatesPredicate
dup
aload 2
invokespecial net.sf.cglib.core.DuplicatesPredicate.<init>:(Ljava/util/List;)V
invokestatic net.sf.cglib.core.CollectionUtils.filter:(Ljava/util/Collection;Lnet/sf/cglib/core/Predicate;)Ljava/util/Collection;
pop
18: aload 2
new net.sf.cglib.core.RejectModifierPredicate
dup
bipush 16
invokespecial net.sf.cglib.core.RejectModifierPredicate.<init>:(I)V
invokestatic net.sf.cglib.core.CollectionUtils.filter:(Ljava/util/Collection;Lnet/sf/cglib/core/Predicate;)Ljava/util/Collection;
pop
19: return
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 20 0 superclass Ljava/lang/Class;
0 20 1 interfaces [Ljava/lang/Class;
0 20 2 methods Ljava/util/List;
0 20 3 interfaceMethods Ljava/util/List;
0 20 4 forcePublic Ljava/util/Set;
4 20 5 target Ljava/util/List;
6 11 6 i I
MethodParameters:
Name Flags
superclass
interfaces
methods
interfaceMethods
forcePublic
public void generateClass(org.objectweb.asm.ClassVisitor);
descriptor: (Lorg/objectweb/asm/ClassVisitor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=2
start local 0 start local 1 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
ifnonnull 1
ldc Ljava/lang/Object;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
getfield net.sf.cglib.proxy.Enhancer.superclass:Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
2: astore 2
start local 2 3: aload 2
invokevirtual java.lang.Class.getModifiers:()I
invokestatic net.sf.cglib.core.TypeUtils.isFinal:(I)Z
ifeq 5
4: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Cannot subclass final class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals: java.lang.Class
StackMap stack:
new java.util.ArrayList
dup
aload 2
invokevirtual java.lang.Class.getDeclaredConstructors:()[Ljava/lang/reflect/Constructor;
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
astore 3
start local 3 6: aload 0
aload 2
aload 3
invokevirtual net.sf.cglib.proxy.Enhancer.filterConstructors:(Ljava/lang/Class;Ljava/util/List;)V
7: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 4
start local 4 8: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 5
start local 5 9: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 6
start local 6 10: aload 2
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
aload 4
aload 5
aload 6
invokestatic net.sf.cglib.proxy.Enhancer.getMethods:(Ljava/lang/Class;[Ljava/lang/Class;Ljava/util/List;Ljava/util/List;Ljava/util/Set;)V
11: aload 4
new net.sf.cglib.proxy.Enhancer$2
dup
aload 0
aload 6
invokespecial net.sf.cglib.proxy.Enhancer$2.<init>:(Lnet/sf/cglib/proxy/Enhancer;Ljava/util/Set;)V
invokestatic net.sf.cglib.core.CollectionUtils.transform:(Ljava/util/Collection;Lnet/sf/cglib/core/Transformer;)Ljava/util/List;
astore 7
start local 7 12: new net.sf.cglib.core.ClassEmitter
dup
aload 1
invokespecial net.sf.cglib.core.ClassEmitter.<init>:(Lorg/objectweb/asm/ClassVisitor;)V
astore 8
start local 8 13: aload 0
getfield net.sf.cglib.proxy.Enhancer.currentData:Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
ifnonnull 24
14: aload 8
bipush 52
15: iconst_1
16: aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.getClassName:()Ljava/lang/String;
17: aload 2
invokestatic org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
18: aload 0
getfield net.sf.cglib.proxy.Enhancer.useFactory:Z
ifeq 20
19: aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
invokestatic net.sf.cglib.core.TypeUtils.getTypes:([Ljava/lang/Class;)[Lorg/objectweb/asm/Type;
getstatic net.sf.cglib.proxy.Enhancer.FACTORY:Lorg/objectweb/asm/Type;
invokestatic net.sf.cglib.core.TypeUtils.add:([Lorg/objectweb/asm/Type;Lorg/objectweb/asm/Type;)[Lorg/objectweb/asm/Type;
goto 21
20: StackMap locals: net.sf.cglib.proxy.Enhancer org.objectweb.asm.ClassVisitor java.lang.Class java.util.List java.util.List java.util.List java.util.Set java.util.List net.sf.cglib.core.ClassEmitter
StackMap stack: net.sf.cglib.core.ClassEmitter int int java.lang.String org.objectweb.asm.Type
aload 0
getfield net.sf.cglib.proxy.Enhancer.interfaces:[Ljava/lang/Class;
invokestatic net.sf.cglib.core.TypeUtils.getTypes:([Ljava/lang/Class;)[Lorg/objectweb/asm/Type;
21: StackMap locals: net.sf.cglib.proxy.Enhancer org.objectweb.asm.ClassVisitor java.lang.Class java.util.List java.util.List java.util.List java.util.Set java.util.List net.sf.cglib.core.ClassEmitter
StackMap stack: net.sf.cglib.core.ClassEmitter int int java.lang.String org.objectweb.asm.Type org.objectweb.asm.Type[]
ldc "<generated>"
22: invokevirtual net.sf.cglib.core.ClassEmitter.begin_class:(IILjava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;Ljava/lang/String;)V
23: goto 31
24: StackMap locals:
StackMap stack:
aload 8
bipush 52
25: iconst_1
26: aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.getClassName:()Ljava/lang/String;
27: aconst_null
28: iconst_1
anewarray org.objectweb.asm.Type
dup
iconst_0
getstatic net.sf.cglib.proxy.Enhancer.FACTORY:Lorg/objectweb/asm/Type;
aastore
29: ldc "<generated>"
30: invokevirtual net.sf.cglib.core.ClassEmitter.begin_class:(IILjava/lang/String;Lorg/objectweb/asm/Type;[Lorg/objectweb/asm/Type;Ljava/lang/String;)V
31: StackMap locals:
StackMap stack:
aload 3
invokestatic net.sf.cglib.core.MethodInfoTransformer.getInstance:()Lnet/sf/cglib/core/MethodInfoTransformer;
invokestatic net.sf.cglib.core.CollectionUtils.transform:(Ljava/util/Collection;Lnet/sf/cglib/core/Transformer;)Ljava/util/List;
astore 9
start local 9 32: aload 8
iconst_2
ldc "CGLIB$BOUND"
getstatic org.objectweb.asm.Type.BOOLEAN_TYPE:Lorg/objectweb/asm/Type;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
33: aload 8
bipush 9
ldc "CGLIB$FACTORY_DATA"
getstatic net.sf.cglib.proxy.Enhancer.OBJECT_TYPE:Lorg/objectweb/asm/Type;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
34: aload 0
getfield net.sf.cglib.proxy.Enhancer.interceptDuringConstruction:Z
ifne 36
35: aload 8
iconst_2
ldc "CGLIB$CONSTRUCTED"
getstatic org.objectweb.asm.Type.BOOLEAN_TYPE:Lorg/objectweb/asm/Type;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
36: StackMap locals: java.util.List
StackMap stack:
aload 8
bipush 26
ldc "CGLIB$THREAD_CALLBACKS"
getstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL:Lorg/objectweb/asm/Type;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
37: aload 8
bipush 26
ldc "CGLIB$STATIC_CALLBACKS"
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK_ARRAY:Lorg/objectweb/asm/Type;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
38: aload 0
getfield net.sf.cglib.proxy.Enhancer.serialVersionUID:Ljava/lang/Long;
ifnull 40
39: aload 8
bipush 26
ldc "serialVersionUID"
getstatic org.objectweb.asm.Type.LONG_TYPE:Lorg/objectweb/asm/Type;
aload 0
getfield net.sf.cglib.proxy.Enhancer.serialVersionUID:Ljava/lang/Long;
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
40: StackMap locals:
StackMap stack:
iconst_0
istore 10
start local 10 41: goto 44
42: StackMap locals: int
StackMap stack:
aload 8
iconst_2
iload 10
invokestatic net.sf.cglib.proxy.Enhancer.getCallbackField:(I)Ljava/lang/String;
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
iload 10
aaload
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
43: iinc 10 1
StackMap locals:
StackMap stack:
44: iload 10
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
if_icmplt 42
end local 10 45: aload 8
bipush 10
ldc "CGLIB$CALLBACK_FILTER"
getstatic net.sf.cglib.proxy.Enhancer.OBJECT_TYPE:Lorg/objectweb/asm/Type;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.declare_field:(ILjava/lang/String;Lorg/objectweb/asm/Type;Ljava/lang/Object;)V
46: aload 0
getfield net.sf.cglib.proxy.Enhancer.currentData:Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
ifnonnull 50
47: aload 0
aload 8
aload 7
aload 4
invokevirtual net.sf.cglib.proxy.Enhancer.emitMethods:(Lnet/sf/cglib/core/ClassEmitter;Ljava/util/List;Ljava/util/List;)V
48: aload 0
aload 8
aload 9
invokevirtual net.sf.cglib.proxy.Enhancer.emitConstructors:(Lnet/sf/cglib/core/ClassEmitter;Ljava/util/List;)V
49: goto 51
50: StackMap locals:
StackMap stack:
aload 0
aload 8
invokevirtual net.sf.cglib.proxy.Enhancer.emitDefaultConstructor:(Lnet/sf/cglib/core/ClassEmitter;)V
51: StackMap locals:
StackMap stack:
aload 0
aload 8
invokevirtual net.sf.cglib.proxy.Enhancer.emitSetThreadCallbacks:(Lnet/sf/cglib/core/ClassEmitter;)V
52: aload 0
aload 8
invokevirtual net.sf.cglib.proxy.Enhancer.emitSetStaticCallbacks:(Lnet/sf/cglib/core/ClassEmitter;)V
53: aload 0
aload 8
invokevirtual net.sf.cglib.proxy.Enhancer.emitBindCallbacks:(Lnet/sf/cglib/core/ClassEmitter;)V
54: aload 0
getfield net.sf.cglib.proxy.Enhancer.useFactory:Z
ifne 55
aload 0
getfield net.sf.cglib.proxy.Enhancer.currentData:Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
ifnull 63
55: StackMap locals:
StackMap stack:
aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.getCallbackKeys:()[I
astore 10
start local 10 56: aload 0
aload 8
invokevirtual net.sf.cglib.proxy.Enhancer.emitNewInstanceCallbacks:(Lnet/sf/cglib/core/ClassEmitter;)V
57: aload 0
aload 8
invokevirtual net.sf.cglib.proxy.Enhancer.emitNewInstanceCallback:(Lnet/sf/cglib/core/ClassEmitter;)V
58: aload 0
aload 8
aload 9
invokevirtual net.sf.cglib.proxy.Enhancer.emitNewInstanceMultiarg:(Lnet/sf/cglib/core/ClassEmitter;Ljava/util/List;)V
59: aload 0
aload 8
aload 10
invokevirtual net.sf.cglib.proxy.Enhancer.emitGetCallback:(Lnet/sf/cglib/core/ClassEmitter;[I)V
60: aload 0
aload 8
aload 10
invokevirtual net.sf.cglib.proxy.Enhancer.emitSetCallback:(Lnet/sf/cglib/core/ClassEmitter;[I)V
61: aload 0
aload 8
invokevirtual net.sf.cglib.proxy.Enhancer.emitGetCallbacks:(Lnet/sf/cglib/core/ClassEmitter;)V
62: aload 0
aload 8
invokevirtual net.sf.cglib.proxy.Enhancer.emitSetCallbacks:(Lnet/sf/cglib/core/ClassEmitter;)V
end local 10 63: StackMap locals:
StackMap stack:
aload 8
invokevirtual net.sf.cglib.core.ClassEmitter.end_class:()V
64: return
end local 9 end local 8 end local 7 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 65 0 this Lnet/sf/cglib/proxy/Enhancer;
0 65 1 v Lorg/objectweb/asm/ClassVisitor;
3 65 2 sc Ljava/lang/Class;
6 65 3 constructors Ljava/util/List;
8 65 4 actualMethods Ljava/util/List;
9 65 5 interfaceMethods Ljava/util/List;
10 65 6 forcePublic Ljava/util/Set;
12 65 7 methods Ljava/util/List;
13 65 8 e Lnet/sf/cglib/core/ClassEmitter;
32 65 9 constructorInfo Ljava/util/List;
41 45 10 i I
56 63 10 keys [I
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
v
protected void filterConstructors(java.lang.Class, java.util.List);
descriptor: (Ljava/lang/Class;Ljava/util/List;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
new net.sf.cglib.core.VisibilityPredicate
dup
aload 1
iconst_1
invokespecial net.sf.cglib.core.VisibilityPredicate.<init>:(Ljava/lang/Class;Z)V
invokestatic net.sf.cglib.core.CollectionUtils.filter:(Ljava/util/Collection;Lnet/sf/cglib/core/Predicate;)Ljava/util/Collection;
pop
1: aload 2
invokeinterface java.util.List.size:()I
ifne 3
2: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "No visible constructors in "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lnet/sf/cglib/proxy/Enhancer;
0 4 1 sc Ljava/lang/Class;
0 4 2 constructors Ljava/util/List;
MethodParameters:
Name Flags
sc
constructors
protected java.lang.Object firstInstance(java.lang.Class);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.classOnly:Z
ifeq 2
1: aload 1
areturn
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual net.sf.cglib.proxy.Enhancer.createUsingReflection:(Ljava/lang/Class;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lnet/sf/cglib/proxy/Enhancer;
0 3 1 type Ljava/lang/Class;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
type
protected java.lang.Object nextInstance(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 1
checkcast net.sf.cglib.proxy.Enhancer$EnhancerFactoryData
astore 2
start local 2 1: aload 0
getfield net.sf.cglib.proxy.Enhancer.classOnly:Z
ifeq 3
2: aload 2
getfield net.sf.cglib.proxy.Enhancer$EnhancerFactoryData.generatedClass:Ljava/lang/Class;
areturn
3: StackMap locals: net.sf.cglib.proxy.Enhancer$EnhancerFactoryData
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.argumentTypes:[Ljava/lang/Class;
astore 3
start local 3 4: aload 0
getfield net.sf.cglib.proxy.Enhancer.arguments:[Ljava/lang/Object;
astore 4
start local 4 5: aload 3
ifnonnull 8
6: getstatic net.sf.cglib.core.Constants.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
astore 3
7: aconst_null
astore 4
8: StackMap locals: java.lang.Class[] java.lang.Object[]
StackMap stack:
aload 2
aload 3
aload 4
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
invokevirtual net.sf.cglib.proxy.Enhancer$EnhancerFactoryData.newInstance:([Ljava/lang/Class;[Ljava/lang/Object;[Lnet/sf/cglib/proxy/Callback;)Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lnet/sf/cglib/proxy/Enhancer;
0 9 1 instance Ljava/lang/Object;
1 9 2 data Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
4 9 3 argumentTypes [Ljava/lang/Class;
5 9 4 arguments [Ljava/lang/Object;
MethodParameters:
Name Flags
instance
protected java.lang.Object wrapCachedClass(java.lang.Class);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.argumentTypes:[Ljava/lang/Class;
astore 2
start local 2 1: aload 2
ifnonnull 3
2: getstatic net.sf.cglib.core.Constants.EMPTY_CLASS_ARRAY:[Ljava/lang/Class;
astore 2
3: StackMap locals: java.lang.Class[]
StackMap stack:
new net.sf.cglib.proxy.Enhancer$EnhancerFactoryData
dup
aload 1
aload 2
aload 0
getfield net.sf.cglib.proxy.Enhancer.classOnly:Z
invokespecial net.sf.cglib.proxy.Enhancer$EnhancerFactoryData.<init>:(Ljava/lang/Class;[Ljava/lang/Class;Z)V
astore 3
start local 3 4: aconst_null
astore 4
start local 4 5: aload 1
ldc "CGLIB$FACTORY_DATA"
invokevirtual java.lang.Class.getField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 4
6: aload 4
aconst_null
aload 3
invokevirtual java.lang.reflect.Field.set:(Ljava/lang/Object;Ljava/lang/Object;)V
7: aload 1
ldc "CGLIB$CALLBACK_FILTER"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 5
start local 5 8: aload 5
iconst_1
invokevirtual java.lang.reflect.Field.setAccessible:(Z)V
9: aload 5
aconst_null
aload 0
getfield net.sf.cglib.proxy.Enhancer.filter:Lnet/sf/cglib/proxy/CallbackFilter;
invokevirtual java.lang.reflect.Field.set:(Ljava/lang/Object;Ljava/lang/Object;)V
end local 5 10: goto 15
StackMap locals: net.sf.cglib.proxy.Enhancer java.lang.Class java.lang.Class[] net.sf.cglib.proxy.Enhancer$EnhancerFactoryData java.lang.reflect.Field
StackMap stack: java.lang.NoSuchFieldException
11: astore 5
start local 5 12: new net.sf.cglib.core.CodeGenerationException
dup
aload 5
invokespecial net.sf.cglib.core.CodeGenerationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 13: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 5
start local 5 14: new net.sf.cglib.core.CodeGenerationException
dup
aload 5
invokespecial net.sf.cglib.core.CodeGenerationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 15: StackMap locals:
StackMap stack:
new java.lang.ref.WeakReference
dup
aload 3
invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lnet/sf/cglib/proxy/Enhancer;
0 16 1 klass Ljava/lang/Class;
1 16 2 argumentTypes [Ljava/lang/Class;
4 16 3 factoryData Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
5 16 4 factoryDataField Ljava/lang/reflect/Field;
8 10 5 callbackFilterField Ljava/lang/reflect/Field;
12 13 5 e Ljava/lang/NoSuchFieldException;
14 15 5 e Ljava/lang/IllegalAccessException;
Exception table:
from to target type
5 10 11 Class java.lang.NoSuchFieldException
5 10 13 Class java.lang.IllegalAccessException
MethodParameters:
Name Flags
klass
protected java.lang.Object unwrapCachedValue(java.lang.Object);
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0004) ACC_PROTECTED
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.currentKey:Ljava/lang/Object;
instanceof net.sf.cglib.proxy.Enhancer$EnhancerKey
ifeq 3
1: aload 1
checkcast java.lang.ref.WeakReference
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast net.sf.cglib.proxy.Enhancer$EnhancerFactoryData
astore 2
start local 2 2: aload 2
areturn
end local 2 3: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial net.sf.cglib.core.AbstractClassGenerator.unwrapCachedValue:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lnet/sf/cglib/proxy/Enhancer;
0 4 1 cached Ljava/lang/Object;
2 3 2 data Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
MethodParameters:
Name Flags
cached
public static void registerCallbacks(java.lang.Class, net.sf.cglib.proxy.Callback[]);
descriptor: (Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokestatic net.sf.cglib.proxy.Enhancer.setThreadCallbacks:(Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 generatedClass Ljava/lang/Class;
0 2 1 callbacks [Lnet/sf/cglib/proxy/Callback;
MethodParameters:
Name Flags
generatedClass
callbacks
public static void registerStaticCallbacks(java.lang.Class, net.sf.cglib.proxy.Callback[]);
descriptor: (Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc "CGLIB$SET_STATIC_CALLBACKS"
invokestatic net.sf.cglib.proxy.Enhancer.setCallbacksHelper:(Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 generatedClass Ljava/lang/Class;
0 2 1 callbacks [Lnet/sf/cglib/proxy/Callback;
MethodParameters:
Name Flags
generatedClass
callbacks
public static boolean isEnhanced(java.lang.Class);
descriptor: (Ljava/lang/Class;)Z
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ldc "CGLIB$SET_THREAD_CALLBACKS"
invokestatic net.sf.cglib.proxy.Enhancer.getCallbacksSetter:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Method;
pop
1: iconst_1
ireturn
2: StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
pop
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/Class;
Exception table:
from to target type
0 1 2 Class java.lang.NoSuchMethodException
MethodParameters:
Name Flags
type
private static void setThreadCallbacks(java.lang.Class, net.sf.cglib.proxy.Callback[]);
descriptor: (Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc "CGLIB$SET_THREAD_CALLBACKS"
invokestatic net.sf.cglib.proxy.Enhancer.setCallbacksHelper:(Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;Ljava/lang/String;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 type Ljava/lang/Class;
0 2 1 callbacks [Lnet/sf/cglib/proxy/Callback;
MethodParameters:
Name Flags
type
callbacks
private static void setCallbacksHelper(java.lang.Class, net.sf.cglib.proxy.Callback[], java.lang.String);
descriptor: (Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
invokestatic net.sf.cglib.proxy.Enhancer.getCallbacksSetter:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Method;
astore 3
start local 3 1: aload 3
aconst_null
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 1
aastore
invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 3 2: goto 9
StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
3: pop
4: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " is not an enhanced class"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack: java.lang.IllegalAccessException
astore 3
start local 3 6: new net.sf.cglib.core.CodeGenerationException
dup
aload 3
invokespecial net.sf.cglib.core.CodeGenerationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 7: StackMap locals:
StackMap stack: java.lang.reflect.InvocationTargetException
astore 3
start local 3 8: new net.sf.cglib.core.CodeGenerationException
dup
aload 3
invokespecial net.sf.cglib.core.CodeGenerationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 type Ljava/lang/Class;
0 10 1 callbacks [Lnet/sf/cglib/proxy/Callback;
0 10 2 methodName Ljava/lang/String;
1 2 3 setter Ljava/lang/reflect/Method;
6 7 3 e Ljava/lang/IllegalAccessException;
8 9 3 e Ljava/lang/reflect/InvocationTargetException;
Exception table:
from to target type
0 2 3 Class java.lang.NoSuchMethodException
0 2 5 Class java.lang.IllegalAccessException
0 2 7 Class java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
type
callbacks
methodName
private static java.lang.reflect.Method getCallbacksSetter(java.lang.Class, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Method;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc [Lnet/sf/cglib/proxy/Callback;
aastore
invokevirtual java.lang.Class.getDeclaredMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/Class;
0 1 1 methodName Ljava/lang/String;
Exceptions:
throws java.lang.NoSuchMethodException
MethodParameters:
Name Flags
type
methodName
private java.lang.Object createUsingReflection(java.lang.Class);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 1
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbacks:[Lnet/sf/cglib/proxy/Callback;
invokestatic net.sf.cglib.proxy.Enhancer.setThreadCallbacks:(Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;)V
1: aload 0
getfield net.sf.cglib.proxy.Enhancer.argumentTypes:[Ljava/lang/Class;
ifnull 5
2: aload 1
aload 0
getfield net.sf.cglib.proxy.Enhancer.argumentTypes:[Ljava/lang/Class;
aload 0
getfield net.sf.cglib.proxy.Enhancer.arguments:[Ljava/lang/Object;
invokestatic net.sf.cglib.core.ReflectUtils.newInstance:(Ljava/lang/Class;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
astore 3
3: aload 1
aconst_null
invokestatic net.sf.cglib.proxy.Enhancer.setThreadCallbacks:(Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;)V
4: aload 3
areturn
5: StackMap locals:
StackMap stack:
aload 1
invokestatic net.sf.cglib.core.ReflectUtils.newInstance:(Ljava/lang/Class;)Ljava/lang/Object;
astore 3
6: aload 1
aconst_null
invokestatic net.sf.cglib.proxy.Enhancer.setThreadCallbacks:(Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;)V
7: aload 3
areturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
astore 2
9: aload 1
aconst_null
invokestatic net.sf.cglib.proxy.Enhancer.setThreadCallbacks:(Ljava/lang/Class;[Lnet/sf/cglib/proxy/Callback;)V
10: aload 2
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lnet/sf/cglib/proxy/Enhancer;
0 11 1 type Ljava/lang/Class;
Exception table:
from to target type
1 3 8 any
5 6 8 any
MethodParameters:
Name Flags
type
public static java.lang.Object create(java.lang.Class, net.sf.cglib.proxy.Callback);
descriptor: (Ljava/lang/Class;Lnet/sf/cglib/proxy/Callback;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: new net.sf.cglib.proxy.Enhancer
dup
invokespecial net.sf.cglib.proxy.Enhancer.<init>:()V
astore 2
start local 2 1: aload 2
aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.setSuperclass:(Ljava/lang/Class;)V
2: aload 2
aload 1
invokevirtual net.sf.cglib.proxy.Enhancer.setCallback:(Lnet/sf/cglib/proxy/Callback;)V
3: aload 2
invokevirtual net.sf.cglib.proxy.Enhancer.create:()Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 type Ljava/lang/Class;
0 4 1 callback Lnet/sf/cglib/proxy/Callback;
1 4 2 e Lnet/sf/cglib/proxy/Enhancer;
MethodParameters:
Name Flags
type
callback
public static java.lang.Object create(java.lang.Class, java.lang.Class[], net.sf.cglib.proxy.Callback);
descriptor: (Ljava/lang/Class;[Ljava/lang/Class;Lnet/sf/cglib/proxy/Callback;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new net.sf.cglib.proxy.Enhancer
dup
invokespecial net.sf.cglib.proxy.Enhancer.<init>:()V
astore 3
start local 3 1: aload 3
aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.setSuperclass:(Ljava/lang/Class;)V
2: aload 3
aload 1
invokevirtual net.sf.cglib.proxy.Enhancer.setInterfaces:([Ljava/lang/Class;)V
3: aload 3
aload 2
invokevirtual net.sf.cglib.proxy.Enhancer.setCallback:(Lnet/sf/cglib/proxy/Callback;)V
4: aload 3
invokevirtual net.sf.cglib.proxy.Enhancer.create:()Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 superclass Ljava/lang/Class;
0 5 1 interfaces [Ljava/lang/Class;
0 5 2 callback Lnet/sf/cglib/proxy/Callback;
1 5 3 e Lnet/sf/cglib/proxy/Enhancer;
MethodParameters:
Name Flags
superclass
interfaces
callback
public static java.lang.Object create(java.lang.Class, java.lang.Class[], net.sf.cglib.proxy.CallbackFilter, net.sf.cglib.proxy.Callback[]);
descriptor: (Ljava/lang/Class;[Ljava/lang/Class;Lnet/sf/cglib/proxy/CallbackFilter;[Lnet/sf/cglib/proxy/Callback;)Ljava/lang/Object;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new net.sf.cglib.proxy.Enhancer
dup
invokespecial net.sf.cglib.proxy.Enhancer.<init>:()V
astore 4
start local 4 1: aload 4
aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.setSuperclass:(Ljava/lang/Class;)V
2: aload 4
aload 1
invokevirtual net.sf.cglib.proxy.Enhancer.setInterfaces:([Ljava/lang/Class;)V
3: aload 4
aload 2
invokevirtual net.sf.cglib.proxy.Enhancer.setCallbackFilter:(Lnet/sf/cglib/proxy/CallbackFilter;)V
4: aload 4
aload 3
invokevirtual net.sf.cglib.proxy.Enhancer.setCallbacks:([Lnet/sf/cglib/proxy/Callback;)V
5: aload 4
invokevirtual net.sf.cglib.proxy.Enhancer.create:()Ljava/lang/Object;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 superclass Ljava/lang/Class;
0 6 1 interfaces [Ljava/lang/Class;
0 6 2 filter Lnet/sf/cglib/proxy/CallbackFilter;
0 6 3 callbacks [Lnet/sf/cglib/proxy/Callback;
1 6 4 e Lnet/sf/cglib/proxy/Enhancer;
MethodParameters:
Name Flags
superclass
interfaces
filter
callbacks
private void emitDefaultConstructor(net.sf.cglib.core.ClassEmitter);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=2
start local 0 start local 1 0: ldc Ljava/lang/Object;
iconst_0
anewarray java.lang.Class
invokevirtual java.lang.Class.getDeclaredConstructor:([Ljava/lang/Class;)Ljava/lang/reflect/Constructor;
astore 2
start local 2 1: goto 4
end local 2 StackMap locals:
StackMap stack: java.lang.NoSuchMethodException
2: astore 3
start local 3 3: new java.lang.IllegalStateException
dup
ldc "Object should have default constructor "
aload 3
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;Ljava/lang/Throwable;)V
athrow
end local 3 start local 2 4: StackMap locals: java.lang.reflect.Constructor
StackMap stack:
invokestatic net.sf.cglib.core.MethodInfoTransformer.getInstance:()Lnet/sf/cglib/core/MethodInfoTransformer;
aload 2
invokevirtual net.sf.cglib.core.MethodInfoTransformer.transform:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast net.sf.cglib.core.MethodInfo
astore 3
start local 3 5: aload 1
aload 3
iconst_1
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 4
start local 4 6: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
7: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
8: aload 3
invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
astore 5
start local 5 9: aload 4
aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.super_invoke_constructor:(Lnet/sf/cglib/core/Signature;)V
10: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
11: aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
12: return
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 13 0 this Lnet/sf/cglib/proxy/Enhancer;
0 13 1 ce Lnet/sf/cglib/core/ClassEmitter;
1 2 2 declaredConstructor Ljava/lang/reflect/Constructor<Ljava/lang/Object;>;
4 13 2 declaredConstructor Ljava/lang/reflect/Constructor<Ljava/lang/Object;>;
3 4 3 e Ljava/lang/NoSuchMethodException;
5 13 3 constructor Lnet/sf/cglib/core/MethodInfo;
6 13 4 e Lnet/sf/cglib/core/CodeEmitter;
9 13 5 sig Lnet/sf/cglib/core/Signature;
Exception table:
from to target type
0 1 2 Class java.lang.NoSuchMethodException
MethodParameters:
Name Flags
ce
private void emitConstructors(net.sf.cglib.core.ClassEmitter, java.util.List);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
istore 3
start local 3 1: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 4
start local 4 2: goto 23
3: StackMap locals: int java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast net.sf.cglib.core.MethodInfo
astore 5
start local 5 4: aload 0
getfield net.sf.cglib.proxy.Enhancer.currentData:Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
ifnull 6
ldc "()V"
aload 5
invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.Signature.getDescriptor:()Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 6
5: goto 23
6: StackMap locals: net.sf.cglib.core.MethodInfo
StackMap stack:
aload 1
aload 5
iconst_1
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 6
start local 6 7: aload 6
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
8: aload 6
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
9: aload 6
invokevirtual net.sf.cglib.core.CodeEmitter.load_args:()V
10: aload 5
invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
astore 7
start local 7 11: iload 3
ifne 12
aload 7
invokevirtual net.sf.cglib.core.Signature.getDescriptor:()Ljava/lang/String;
ldc "()V"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 12
iconst_0
goto 13
StackMap locals: net.sf.cglib.core.CodeEmitter net.sf.cglib.core.Signature
StackMap stack:
12: iconst_1
StackMap locals:
StackMap stack: int
13: istore 3
14: aload 6
aload 7
invokevirtual net.sf.cglib.core.CodeEmitter.super_invoke_constructor:(Lnet/sf/cglib/core/Signature;)V
15: aload 0
getfield net.sf.cglib.proxy.Enhancer.currentData:Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
ifnonnull 21
16: aload 6
getstatic net.sf.cglib.proxy.Enhancer.BIND_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static_this:(Lnet/sf/cglib/core/Signature;)V
17: aload 0
getfield net.sf.cglib.proxy.Enhancer.interceptDuringConstruction:Z
ifne 21
18: aload 6
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
19: aload 6
iconst_1
invokevirtual net.sf.cglib.core.CodeEmitter.push:(I)V
20: aload 6
ldc "CGLIB$CONSTRUCTED"
invokevirtual net.sf.cglib.core.CodeEmitter.putfield:(Ljava/lang/String;)V
21: StackMap locals:
StackMap stack:
aload 6
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
22: aload 6
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
end local 7 end local 6 end local 5 23: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
end local 4 24: aload 0
getfield net.sf.cglib.proxy.Enhancer.classOnly:Z
ifne 26
iload 3
ifne 26
aload 0
getfield net.sf.cglib.proxy.Enhancer.arguments:[Ljava/lang/Object;
ifnonnull 26
25: new java.lang.IllegalArgumentException
dup
ldc "Superclass has no null constructors but no arguments were given"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lnet/sf/cglib/proxy/Enhancer;
0 27 1 ce Lnet/sf/cglib/core/ClassEmitter;
0 27 2 constructors Ljava/util/List;
1 27 3 seenNull Z
2 24 4 it Ljava/util/Iterator;
4 23 5 constructor Lnet/sf/cglib/core/MethodInfo;
7 23 6 e Lnet/sf/cglib/core/CodeEmitter;
11 23 7 sig Lnet/sf/cglib/core/Signature;
MethodParameters:
Name Flags
ce
constructors
private int[] getCallbackKeys();
descriptor: ()[I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
newarray 10
astore 1
start local 1 1: iconst_0
istore 2
start local 2 2: goto 5
3: StackMap locals: int[] int
StackMap stack:
aload 1
iload 2
iload 2
iastore
4: iinc 2 1
StackMap locals:
StackMap stack:
5: iload 2
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
if_icmplt 3
end local 2 6: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lnet/sf/cglib/proxy/Enhancer;
1 7 1 keys [I
2 6 2 i I
private void emitGetCallback(net.sf.cglib.core.ClassEmitter, int[]);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;[I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iconst_1
getstatic net.sf.cglib.proxy.Enhancer.GET_CALLBACK:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 3
start local 3 1: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
2: aload 3
getstatic net.sf.cglib.proxy.Enhancer.BIND_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static_this:(Lnet/sf/cglib/core/Signature;)V
3: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
4: aload 3
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
5: aload 3
aload 2
new net.sf.cglib.proxy.Enhancer$3
dup
aload 0
aload 3
invokespecial net.sf.cglib.proxy.Enhancer$3.<init>:(Lnet/sf/cglib/proxy/Enhancer;Lnet/sf/cglib/core/CodeEmitter;)V
invokevirtual net.sf.cglib.core.CodeEmitter.process_switch:([ILnet/sf/cglib/core/ProcessSwitchCallback;)V
6: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
7: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
8: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lnet/sf/cglib/proxy/Enhancer;
0 9 1 ce Lnet/sf/cglib/core/ClassEmitter;
0 9 2 keys [I
1 9 3 e Lnet/sf/cglib/core/CodeEmitter;
MethodParameters:
Name Flags
ce
keys
private void emitSetCallback(net.sf.cglib.core.ClassEmitter, int[]);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;[I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iconst_1
getstatic net.sf.cglib.proxy.Enhancer.SET_CALLBACK:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 3
start local 3 1: aload 3
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
2: aload 3
aload 2
new net.sf.cglib.proxy.Enhancer$4
dup
aload 0
aload 3
invokespecial net.sf.cglib.proxy.Enhancer$4.<init>:(Lnet/sf/cglib/proxy/Enhancer;Lnet/sf/cglib/core/CodeEmitter;)V
invokevirtual net.sf.cglib.core.CodeEmitter.process_switch:([ILnet/sf/cglib/core/ProcessSwitchCallback;)V
3: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
4: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lnet/sf/cglib/proxy/Enhancer;
0 6 1 ce Lnet/sf/cglib/core/ClassEmitter;
0 6 2 keys [I
1 6 3 e Lnet/sf/cglib/core/CodeEmitter;
MethodParameters:
Name Flags
ce
keys
private void emitSetCallbacks(net.sf.cglib.core.ClassEmitter);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
getstatic net.sf.cglib.proxy.Enhancer.SET_CALLBACKS:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 2
start local 2 1: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
2: aload 2
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
3: iconst_0
istore 3
start local 3 4: goto 10
5: StackMap locals: net.sf.cglib.core.CodeEmitter int
StackMap stack:
aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.dup2:()V
6: aload 2
iload 3
invokevirtual net.sf.cglib.core.CodeEmitter.aaload:(I)V
7: aload 2
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
iload 3
aaload
invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
8: aload 2
iload 3
invokestatic net.sf.cglib.proxy.Enhancer.getCallbackField:(I)Ljava/lang/String;
invokevirtual net.sf.cglib.core.CodeEmitter.putfield:(Ljava/lang/String;)V
9: iinc 3 1
StackMap locals:
StackMap stack:
10: iload 3
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
if_icmplt 5
end local 3 11: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
12: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lnet/sf/cglib/proxy/Enhancer;
0 14 1 ce Lnet/sf/cglib/core/ClassEmitter;
1 14 2 e Lnet/sf/cglib/core/CodeEmitter;
4 11 3 i I
MethodParameters:
Name Flags
ce
private void emitGetCallbacks(net.sf.cglib.core.ClassEmitter);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
getstatic net.sf.cglib.proxy.Enhancer.GET_CALLBACKS:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 2
start local 2 1: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
2: aload 2
getstatic net.sf.cglib.proxy.Enhancer.BIND_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static_this:(Lnet/sf/cglib/core/Signature;)V
3: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
4: aload 2
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
invokevirtual net.sf.cglib.core.CodeEmitter.push:(I)V
5: aload 2
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK:Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.newarray:(Lorg/objectweb/asm/Type;)V
6: iconst_0
istore 3
start local 3 7: goto 14
8: StackMap locals: net.sf.cglib.core.CodeEmitter int
StackMap stack:
aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
9: aload 2
iload 3
invokevirtual net.sf.cglib.core.CodeEmitter.push:(I)V
10: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
11: aload 2
iload 3
invokestatic net.sf.cglib.proxy.Enhancer.getCallbackField:(I)Ljava/lang/String;
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
12: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.aastore:()V
13: iinc 3 1
StackMap locals:
StackMap stack:
14: iload 3
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
if_icmplt 8
end local 3 15: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
16: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
17: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lnet/sf/cglib/proxy/Enhancer;
0 18 1 ce Lnet/sf/cglib/core/ClassEmitter;
1 18 2 e Lnet/sf/cglib/core/CodeEmitter;
7 15 3 i I
MethodParameters:
Name Flags
ce
private void emitNewInstanceCallbacks(net.sf.cglib.core.ClassEmitter);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
getstatic net.sf.cglib.proxy.Enhancer.NEW_INSTANCE:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 2
start local 2 1: aload 0
aload 2
invokevirtual net.sf.cglib.proxy.Enhancer.getThisType:(Lnet/sf/cglib/core/CodeEmitter;)Lorg/objectweb/asm/Type;
astore 3
start local 3 2: aload 2
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
3: aload 2
aload 3
getstatic net.sf.cglib.proxy.Enhancer.SET_THREAD_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
4: aload 0
aload 2
invokevirtual net.sf.cglib.proxy.Enhancer.emitCommonNewInstance:(Lnet/sf/cglib/core/CodeEmitter;)V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lnet/sf/cglib/proxy/Enhancer;
0 6 1 ce Lnet/sf/cglib/core/ClassEmitter;
1 6 2 e Lnet/sf/cglib/core/CodeEmitter;
2 6 3 thisType Lorg/objectweb/asm/Type;
MethodParameters:
Name Flags
ce
private org.objectweb.asm.Type getThisType(net.sf.cglib.core.CodeEmitter);
descriptor: (Lnet/sf/cglib/core/CodeEmitter;)Lorg/objectweb/asm/Type;
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.currentData:Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
ifnonnull 2
1: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.getClassEmitter:()Lnet/sf/cglib/core/ClassEmitter;
invokevirtual net.sf.cglib.core.ClassEmitter.getClassType:()Lorg/objectweb/asm/Type;
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield net.sf.cglib.proxy.Enhancer.currentData:Lnet/sf/cglib/proxy/Enhancer$EnhancerFactoryData;
getfield net.sf.cglib.proxy.Enhancer$EnhancerFactoryData.generatedClass:Ljava/lang/Class;
invokestatic org.objectweb.asm.Type.getType:(Ljava/lang/Class;)Lorg/objectweb/asm/Type;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lnet/sf/cglib/proxy/Enhancer;
0 3 1 e Lnet/sf/cglib/core/CodeEmitter;
MethodParameters:
Name Flags
e
private void emitCommonNewInstance(net.sf.cglib.core.CodeEmitter);
descriptor: (Lnet/sf/cglib/core/CodeEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual net.sf.cglib.proxy.Enhancer.getThisType:(Lnet/sf/cglib/core/CodeEmitter;)Lorg/objectweb/asm/Type;
astore 2
start local 2 1: aload 1
aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.new_instance:(Lorg/objectweb/asm/Type;)V
2: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
3: aload 1
aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_constructor:(Lorg/objectweb/asm/Type;)V
4: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.aconst_null:()V
5: aload 1
aload 2
getstatic net.sf.cglib.proxy.Enhancer.SET_THREAD_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
6: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
7: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lnet/sf/cglib/proxy/Enhancer;
0 9 1 e Lnet/sf/cglib/core/CodeEmitter;
1 9 2 thisType Lorg/objectweb/asm/Type;
MethodParameters:
Name Flags
e
private void emitNewInstanceCallback(net.sf.cglib.core.ClassEmitter);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
iconst_1
getstatic net.sf.cglib.proxy.Enhancer.SINGLE_NEW_INSTANCE:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 2
start local 2 1: aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
tableswitch { // 0 - 1
0: 2
1: 3
default: 11
}
2: StackMap locals: net.sf.cglib.core.CodeEmitter
StackMap stack:
goto 12
3: StackMap locals:
StackMap stack:
aload 2
iconst_1
invokevirtual net.sf.cglib.core.CodeEmitter.push:(I)V
4: aload 2
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK:Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.newarray:(Lorg/objectweb/asm/Type;)V
5: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
6: aload 2
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.push:(I)V
7: aload 2
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
8: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.aastore:()V
9: aload 2
aload 0
aload 2
invokevirtual net.sf.cglib.proxy.Enhancer.getThisType:(Lnet/sf/cglib/core/CodeEmitter;)Lorg/objectweb/asm/Type;
getstatic net.sf.cglib.proxy.Enhancer.SET_THREAD_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
10: goto 12
11: StackMap locals:
StackMap stack:
aload 2
getstatic net.sf.cglib.proxy.Enhancer.ILLEGAL_STATE_EXCEPTION:Lorg/objectweb/asm/Type;
ldc "More than one callback object required"
invokevirtual net.sf.cglib.core.CodeEmitter.throw_exception:(Lorg/objectweb/asm/Type;Ljava/lang/String;)V
12: StackMap locals:
StackMap stack:
aload 0
aload 2
invokevirtual net.sf.cglib.proxy.Enhancer.emitCommonNewInstance:(Lnet/sf/cglib/core/CodeEmitter;)V
13: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lnet/sf/cglib/proxy/Enhancer;
0 14 1 ce Lnet/sf/cglib/core/ClassEmitter;
1 14 2 e Lnet/sf/cglib/core/CodeEmitter;
MethodParameters:
Name Flags
ce
private void emitNewInstanceMultiarg(net.sf.cglib.core.ClassEmitter, java.util.List);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
iconst_1
getstatic net.sf.cglib.proxy.Enhancer.MULTIARG_NEW_INSTANCE:Lnet/sf/cglib/core/Signature;
aconst_null
invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 3
start local 3 1: aload 0
aload 3
invokevirtual net.sf.cglib.proxy.Enhancer.getThisType:(Lnet/sf/cglib/core/CodeEmitter;)Lorg/objectweb/asm/Type;
astore 4
start local 4 2: aload 3
iconst_2
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
3: aload 3
aload 4
getstatic net.sf.cglib.proxy.Enhancer.SET_THREAD_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
4: aload 3
aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.new_instance:(Lorg/objectweb/asm/Type;)V
5: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
6: aload 3
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
7: aload 3
aload 2
new net.sf.cglib.proxy.Enhancer$5
dup
aload 0
aload 3
aload 4
invokespecial net.sf.cglib.proxy.Enhancer$5.<init>:(Lnet/sf/cglib/proxy/Enhancer;Lnet/sf/cglib/core/CodeEmitter;Lorg/objectweb/asm/Type;)V
invokestatic net.sf.cglib.core.EmitUtils.constructor_switch:(Lnet/sf/cglib/core/CodeEmitter;Ljava/util/List;Lnet/sf/cglib/core/ObjectSwitchCallback;)V
8: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.aconst_null:()V
9: aload 3
aload 4
getstatic net.sf.cglib.proxy.Enhancer.SET_THREAD_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
10: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
11: aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
12: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lnet/sf/cglib/proxy/Enhancer;
0 13 1 ce Lnet/sf/cglib/core/ClassEmitter;
0 13 2 constructors Ljava/util/List;
1 13 3 e Lnet/sf/cglib/core/CodeEmitter;
2 13 4 thisType Lorg/objectweb/asm/Type;
MethodParameters:
Name Flags
ce
constructors
private void emitMethods(net.sf.cglib.core.ClassEmitter, java.util.List, java.util.List);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;Ljava/util/List;Ljava/util/List;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=20, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
invokestatic net.sf.cglib.proxy.CallbackInfo.getGenerators:([Lorg/objectweb/asm/Type;)[Lnet/sf/cglib/proxy/CallbackGenerator;
astore 4
start local 4 1: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 5
start local 5 2: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 6
start local 6 3: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 7
start local 7 4: aload 2
invokestatic net.sf.cglib.core.CollectionUtils.getIndexMap:(Ljava/util/List;)Ljava/util/Map;
astore 8
start local 8 5: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
astore 9
start local 9 6: aload 2
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 10
start local 10 7: aload 3
ifnull 8
aload 3
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
goto 9
StackMap locals: net.sf.cglib.proxy.Enhancer net.sf.cglib.core.ClassEmitter java.util.List java.util.List net.sf.cglib.proxy.CallbackGenerator[] java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Iterator
StackMap stack:
8: aconst_null
StackMap locals:
StackMap stack: java.util.Iterator
9: astore 11
start local 11 10: goto 33
11: StackMap locals: java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast net.sf.cglib.core.MethodInfo
astore 12
start local 12 12: aload 11
ifnull 13
aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.reflect.Method
goto 14
StackMap locals: net.sf.cglib.core.MethodInfo
StackMap stack:
13: aconst_null
StackMap locals:
StackMap stack: java.lang.reflect.Method
14: astore 13
start local 13 15: aload 0
getfield net.sf.cglib.proxy.Enhancer.filter:Lnet/sf/cglib/proxy/CallbackFilter;
aload 13
invokeinterface net.sf.cglib.proxy.CallbackFilter.accept:(Ljava/lang/reflect/Method;)I
istore 14
start local 14 16: iload 14
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
if_icmplt 18
17: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Callback filter returned an index that is too large: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 14
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
18: StackMap locals: java.lang.reflect.Method int
StackMap stack:
aload 7
aload 12
19: new java.lang.Integer
dup
aload 13
ifnull 20
aload 13
invokevirtual java.lang.reflect.Method.getModifiers:()I
goto 21
StackMap locals: net.sf.cglib.proxy.Enhancer net.sf.cglib.core.ClassEmitter java.util.List java.util.List net.sf.cglib.proxy.CallbackGenerator[] java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Iterator java.util.Iterator net.sf.cglib.core.MethodInfo java.lang.reflect.Method int
StackMap stack: java.util.Map net.sf.cglib.core.MethodInfo new 19 new 19
20: aload 12
invokevirtual net.sf.cglib.core.MethodInfo.getModifiers:()I
StackMap locals: net.sf.cglib.proxy.Enhancer net.sf.cglib.core.ClassEmitter java.util.List java.util.List net.sf.cglib.proxy.CallbackGenerator[] java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Iterator java.util.Iterator net.sf.cglib.core.MethodInfo java.lang.reflect.Method int
StackMap stack: java.util.Map net.sf.cglib.core.MethodInfo new 19 new 19 int
21: invokespecial java.lang.Integer.<init>:(I)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
22: aload 6
aload 12
new java.lang.Integer
dup
iload 14
invokespecial java.lang.Integer.<init>:(I)V
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
23: aload 5
aload 4
iload 14
aaload
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 15
start local 15 24: aload 15
ifnonnull 26
25: aload 5
aload 4
iload 14
aaload
new java.util.ArrayList
dup
aload 2
invokeinterface java.util.List.size:()I
invokespecial java.util.ArrayList.<init>:(I)V
dup
astore 15
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
26: StackMap locals: java.util.List
StackMap stack:
aload 15
aload 12
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
27: aload 13
invokevirtual java.lang.reflect.Method.getModifiers:()I
invokestatic net.sf.cglib.core.TypeUtils.isBridge:(I)Z
ifeq 33
28: aload 9
aload 13
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.Set
astore 16
start local 16 29: aload 16
ifnonnull 32
30: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 16
31: aload 9
aload 13
invokevirtual java.lang.reflect.Method.getDeclaringClass:()Ljava/lang/Class;
aload 16
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
32: StackMap locals: java.util.Set
StackMap stack:
aload 16
aload 12
invokevirtual net.sf.cglib.core.MethodInfo.getSignature:()Lnet/sf/cglib/core/Signature;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 16 end local 15 end local 14 end local 13 end local 12 33: StackMap locals: net.sf.cglib.proxy.Enhancer net.sf.cglib.core.ClassEmitter java.util.List java.util.List net.sf.cglib.proxy.CallbackGenerator[] java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Iterator java.util.Iterator
StackMap stack:
aload 10
invokeinterface java.util.Iterator.hasNext:()Z
ifne 11
34: new net.sf.cglib.proxy.BridgeMethodResolver
dup
aload 9
aload 0
invokevirtual net.sf.cglib.proxy.Enhancer.getClassLoader:()Ljava/lang/ClassLoader;
invokespecial net.sf.cglib.proxy.BridgeMethodResolver.<init>:(Ljava/util/Map;Ljava/lang/ClassLoader;)V
invokevirtual net.sf.cglib.proxy.BridgeMethodResolver.resolveAll:()Ljava/util/Map;
astore 12
start local 12 35: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 13
start local 13 36: aload 1
invokevirtual net.sf.cglib.core.ClassEmitter.getStaticHook:()Lnet/sf/cglib/core/CodeEmitter;
astore 14
start local 14 37: aload 14
getstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL:Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.new_instance:(Lorg/objectweb/asm/Type;)V
38: aload 14
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
39: aload 14
getstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL:Lorg/objectweb/asm/Type;
getstatic net.sf.cglib.proxy.Enhancer.CSTRUCT_NULL:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_constructor:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
40: aload 14
ldc "CGLIB$THREAD_CALLBACKS"
invokevirtual net.sf.cglib.core.CodeEmitter.putfield:(Ljava/lang/String;)V
41: iconst_1
anewarray java.lang.Object
pop
42: new net.sf.cglib.proxy.Enhancer$6
dup
aload 0
aload 7
aload 6
aload 8
aload 12
invokespecial net.sf.cglib.proxy.Enhancer$6.<init>:(Lnet/sf/cglib/proxy/Enhancer;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;Ljava/util/Map;)V
astore 15
start local 15 43: iconst_0
istore 16
start local 16 44: goto 58
45: StackMap locals: net.sf.cglib.proxy.Enhancer net.sf.cglib.core.ClassEmitter java.util.List java.util.List net.sf.cglib.proxy.CallbackGenerator[] java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Iterator java.util.Iterator java.util.Map java.util.Set net.sf.cglib.core.CodeEmitter net.sf.cglib.proxy.CallbackGenerator$Context int
StackMap stack:
aload 4
iload 16
aaload
astore 17
start local 17 46: aload 13
aload 17
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 57
47: aload 13
aload 17
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
48: aload 5
aload 17
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.util.List
astore 18
start local 18 49: aload 18
ifnull 57
50: aload 17
aload 1
aload 15
aload 18
invokeinterface net.sf.cglib.proxy.CallbackGenerator.generate:(Lnet/sf/cglib/core/ClassEmitter;Lnet/sf/cglib/proxy/CallbackGenerator$Context;Ljava/util/List;)V
51: aload 17
aload 14
aload 15
aload 18
invokeinterface net.sf.cglib.proxy.CallbackGenerator.generateStatic:(Lnet/sf/cglib/core/CodeEmitter;Lnet/sf/cglib/proxy/CallbackGenerator$Context;Ljava/util/List;)V
52: goto 57
StackMap locals: net.sf.cglib.proxy.Enhancer net.sf.cglib.core.ClassEmitter java.util.List java.util.List net.sf.cglib.proxy.CallbackGenerator[] java.util.Map java.util.Map java.util.Map java.util.Map java.util.Map java.util.Iterator java.util.Iterator java.util.Map java.util.Set net.sf.cglib.core.CodeEmitter net.sf.cglib.proxy.CallbackGenerator$Context int net.sf.cglib.proxy.CallbackGenerator java.util.List
StackMap stack: java.lang.RuntimeException
53: astore 19
start local 19 54: aload 19
athrow
end local 19 55: StackMap locals:
StackMap stack: java.lang.Exception
astore 19
start local 19 56: new net.sf.cglib.core.CodeGenerationException
dup
aload 19
invokespecial net.sf.cglib.core.CodeGenerationException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 19 end local 18 end local 17 57: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
58: iload 16
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
if_icmplt 45
end local 16 59: aload 14
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
60: aload 14
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
61: return
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 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 62 0 this Lnet/sf/cglib/proxy/Enhancer;
0 62 1 ce Lnet/sf/cglib/core/ClassEmitter;
0 62 2 methods Ljava/util/List;
0 62 3 actualMethods Ljava/util/List;
1 62 4 generators [Lnet/sf/cglib/proxy/CallbackGenerator;
2 62 5 groups Ljava/util/Map;
3 62 6 indexes Ljava/util/Map;
4 62 7 originalModifiers Ljava/util/Map;
5 62 8 positions Ljava/util/Map;
6 62 9 declToBridge Ljava/util/Map;
7 62 10 it1 Ljava/util/Iterator;
10 62 11 it2 Ljava/util/Iterator;
12 33 12 method Lnet/sf/cglib/core/MethodInfo;
15 33 13 actualMethod Ljava/lang/reflect/Method;
16 33 14 index I
24 33 15 group Ljava/util/List;
29 33 16 bridges Ljava/util/Set;
35 62 12 bridgeToTarget Ljava/util/Map;
36 62 13 seenGen Ljava/util/Set;
37 62 14 se Lnet/sf/cglib/core/CodeEmitter;
43 62 15 context Lnet/sf/cglib/proxy/CallbackGenerator$Context;
44 59 16 i I
46 57 17 gen Lnet/sf/cglib/proxy/CallbackGenerator;
49 57 18 fmethods Ljava/util/List;
54 55 19 x Ljava/lang/RuntimeException;
56 57 19 x Ljava/lang/Exception;
Exception table:
from to target type
50 52 53 Class java.lang.RuntimeException
50 52 55 Class java.lang.Exception
MethodParameters:
Name Flags
ce final
methods
actualMethods
private void emitSetThreadCallbacks(net.sf.cglib.core.ClassEmitter);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
bipush 9
1: getstatic net.sf.cglib.proxy.Enhancer.SET_THREAD_CALLBACKS:Lnet/sf/cglib/core/Signature;
2: aconst_null
3: invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 2
start local 2 4: aload 2
ldc "CGLIB$THREAD_CALLBACKS"
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
5: aload 2
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
6: aload 2
getstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL:Lorg/objectweb/asm/Type;
getstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL_SET:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_virtual:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
7: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
8: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lnet/sf/cglib/proxy/Enhancer;
0 10 1 ce Lnet/sf/cglib/core/ClassEmitter;
4 10 2 e Lnet/sf/cglib/core/CodeEmitter;
MethodParameters:
Name Flags
ce
private void emitSetStaticCallbacks(net.sf.cglib.core.ClassEmitter);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
bipush 9
1: getstatic net.sf.cglib.proxy.Enhancer.SET_STATIC_CALLBACKS:Lnet/sf/cglib/core/Signature;
2: aconst_null
3: invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 2
start local 2 4: aload 2
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
5: aload 2
ldc "CGLIB$STATIC_CALLBACKS"
invokevirtual net.sf.cglib.core.CodeEmitter.putfield:(Ljava/lang/String;)V
6: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
7: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lnet/sf/cglib/proxy/Enhancer;
0 9 1 ce Lnet/sf/cglib/core/ClassEmitter;
4 9 2 e Lnet/sf/cglib/core/CodeEmitter;
MethodParameters:
Name Flags
ce
private void emitCurrentCallback(net.sf.cglib.core.CodeEmitter, int);
descriptor: (Lnet/sf/cglib/core/CodeEmitter;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
1: aload 1
iload 2
invokestatic net.sf.cglib.proxy.Enhancer.getCallbackField:(I)Ljava/lang/String;
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
2: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
3: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.make_label:()Lorg/objectweb/asm/Label;
astore 3
start local 3 4: aload 1
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.ifnonnull:(Lorg/objectweb/asm/Label;)V
5: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.pop:()V
6: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
7: aload 1
getstatic net.sf.cglib.proxy.Enhancer.BIND_CALLBACKS:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_static_this:(Lnet/sf/cglib/core/Signature;)V
8: aload 1
invokevirtual net.sf.cglib.core.CodeEmitter.load_this:()V
9: aload 1
iload 2
invokestatic net.sf.cglib.proxy.Enhancer.getCallbackField:(I)Ljava/lang/String;
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
10: aload 1
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.mark:(Lorg/objectweb/asm/Label;)V
11: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lnet/sf/cglib/proxy/Enhancer;
0 12 1 e Lnet/sf/cglib/core/CodeEmitter;
0 12 2 index I
4 12 3 end Lorg/objectweb/asm/Label;
MethodParameters:
Name Flags
e
index
private void emitBindCallbacks(net.sf.cglib.core.ClassEmitter);
descriptor: (Lnet/sf/cglib/core/ClassEmitter;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
bipush 26
1: getstatic net.sf.cglib.proxy.Enhancer.BIND_CALLBACKS:Lnet/sf/cglib/core/Signature;
2: aconst_null
3: invokevirtual net.sf.cglib.core.ClassEmitter.begin_method:(ILnet/sf/cglib/core/Signature;[Lorg/objectweb/asm/Type;)Lnet/sf/cglib/core/CodeEmitter;
astore 2
start local 2 4: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.make_local:()Lnet/sf/cglib/core/Local;
astore 3
start local 3 5: aload 2
iconst_0
invokevirtual net.sf.cglib.core.CodeEmitter.load_arg:(I)V
6: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.checkcast_this:()V
7: aload 2
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.store_local:(Lnet/sf/cglib/core/Local;)V
8: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.make_label:()Lorg/objectweb/asm/Label;
astore 4
start local 4 9: aload 2
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.load_local:(Lnet/sf/cglib/core/Local;)V
10: aload 2
ldc "CGLIB$BOUND"
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
11: aload 2
sipush 154
aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.if_jump:(ILorg/objectweb/asm/Label;)V
12: aload 2
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.load_local:(Lnet/sf/cglib/core/Local;)V
13: aload 2
iconst_1
invokevirtual net.sf.cglib.core.CodeEmitter.push:(I)V
14: aload 2
ldc "CGLIB$BOUND"
invokevirtual net.sf.cglib.core.CodeEmitter.putfield:(Ljava/lang/String;)V
15: aload 2
ldc "CGLIB$THREAD_CALLBACKS"
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
16: aload 2
getstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL:Lorg/objectweb/asm/Type;
getstatic net.sf.cglib.proxy.Enhancer.THREAD_LOCAL_GET:Lnet/sf/cglib/core/Signature;
invokevirtual net.sf.cglib.core.CodeEmitter.invoke_virtual:(Lorg/objectweb/asm/Type;Lnet/sf/cglib/core/Signature;)V
17: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
18: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.make_label:()Lorg/objectweb/asm/Label;
astore 5
start local 5 19: aload 2
aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.ifnonnull:(Lorg/objectweb/asm/Label;)V
20: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.pop:()V
21: aload 2
ldc "CGLIB$STATIC_CALLBACKS"
invokevirtual net.sf.cglib.core.CodeEmitter.getfield:(Ljava/lang/String;)V
22: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.dup:()V
23: aload 2
aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.ifnonnull:(Lorg/objectweb/asm/Label;)V
24: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.pop:()V
25: aload 2
aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.goTo:(Lorg/objectweb/asm/Label;)V
26: aload 2
aload 5
invokevirtual net.sf.cglib.core.CodeEmitter.mark:(Lorg/objectweb/asm/Label;)V
27: aload 2
getstatic net.sf.cglib.proxy.Enhancer.CALLBACK_ARRAY:Lorg/objectweb/asm/Type;
invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
28: aload 2
aload 3
invokevirtual net.sf.cglib.core.CodeEmitter.load_local:(Lnet/sf/cglib/core/Local;)V
29: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.swap:()V
30: aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
arraylength
iconst_1
isub
istore 6
start local 6 31: goto 38
32: StackMap locals: net.sf.cglib.proxy.Enhancer net.sf.cglib.core.ClassEmitter net.sf.cglib.core.CodeEmitter net.sf.cglib.core.Local org.objectweb.asm.Label org.objectweb.asm.Label int
StackMap stack:
iload 6
ifeq 34
33: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.dup2:()V
34: StackMap locals:
StackMap stack:
aload 2
iload 6
invokevirtual net.sf.cglib.core.CodeEmitter.aaload:(I)V
35: aload 2
aload 0
getfield net.sf.cglib.proxy.Enhancer.callbackTypes:[Lorg/objectweb/asm/Type;
iload 6
aaload
invokevirtual net.sf.cglib.core.CodeEmitter.checkcast:(Lorg/objectweb/asm/Type;)V
36: aload 2
iload 6
invokestatic net.sf.cglib.proxy.Enhancer.getCallbackField:(I)Ljava/lang/String;
invokevirtual net.sf.cglib.core.CodeEmitter.putfield:(Ljava/lang/String;)V
37: iinc 6 -1
StackMap locals:
StackMap stack:
38: iload 6
ifge 32
end local 6 39: aload 2
aload 4
invokevirtual net.sf.cglib.core.CodeEmitter.mark:(Lorg/objectweb/asm/Label;)V
40: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.return_value:()V
41: aload 2
invokevirtual net.sf.cglib.core.CodeEmitter.end_method:()V
42: return
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 43 0 this Lnet/sf/cglib/proxy/Enhancer;
0 43 1 ce Lnet/sf/cglib/core/ClassEmitter;
4 43 2 e Lnet/sf/cglib/core/CodeEmitter;
5 43 3 me Lnet/sf/cglib/core/Local;
9 43 4 end Lorg/objectweb/asm/Label;
19 43 5 found_callback Lorg/objectweb/asm/Label;
31 39 6 i I
MethodParameters:
Name Flags
ce
private static java.lang.String getCallbackField(int);
descriptor: (I)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "CGLIB$CALLBACK_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 index I
MethodParameters:
Name Flags
index
}
SourceFile: "Enhancer.java"
NestMembers:
net.sf.cglib.proxy.Enhancer$1 net.sf.cglib.proxy.Enhancer$2 net.sf.cglib.proxy.Enhancer$3 net.sf.cglib.proxy.Enhancer$4 net.sf.cglib.proxy.Enhancer$5 net.sf.cglib.proxy.Enhancer$6 net.sf.cglib.proxy.Enhancer$EnhancerFactoryData net.sf.cglib.proxy.Enhancer$EnhancerKey
InnerClasses:
protected ClassLoaderData = net.sf.cglib.core.AbstractClassGenerator$ClassLoaderData of net.sf.cglib.core.AbstractClassGenerator
protected Source = net.sf.cglib.core.AbstractClassGenerator$Source of net.sf.cglib.core.AbstractClassGenerator
public abstract Context = net.sf.cglib.proxy.CallbackGenerator$Context of net.sf.cglib.proxy.CallbackGenerator
net.sf.cglib.proxy.Enhancer$1
net.sf.cglib.proxy.Enhancer$2
net.sf.cglib.proxy.Enhancer$3
net.sf.cglib.proxy.Enhancer$4
net.sf.cglib.proxy.Enhancer$5
net.sf.cglib.proxy.Enhancer$6
EnhancerFactoryData = net.sf.cglib.proxy.Enhancer$EnhancerFactoryData of net.sf.cglib.proxy.Enhancer
public abstract EnhancerKey = net.sf.cglib.proxy.Enhancer$EnhancerKey of net.sf.cglib.proxy.Enhancer