class sun.misc.ProxyGenerator$ProxyMethod
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.misc.ProxyGenerator$ProxyMethod
super_class: java.lang.Object
{
public java.lang.String methodName;
descriptor: Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
public java.lang.Class<?>[] parameterTypes;
descriptor: [Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Signature: [Ljava/lang/Class<*>;
public java.lang.Class<?> returnType;
descriptor: Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Signature: Ljava/lang/Class<*>;
public java.lang.Class<?>[] exceptionTypes;
descriptor: [Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Signature: [Ljava/lang/Class<*>;
public java.lang.Class<?> fromClass;
descriptor: Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Signature: Ljava/lang/Class<*>;
public java.lang.String methodFieldName;
descriptor: Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
final sun.misc.ProxyGenerator this$0;
descriptor: Lsun/misc/ProxyGenerator;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private void <init>(java.lang.String, java.lang.Class<?>[], java.lang.Class<?>, java.lang.Class<?>[], java.lang.Class<?>);
descriptor: (Lsun/misc/ProxyGenerator;Ljava/lang/String;[Ljava/lang/Class;Ljava/lang/Class;[Ljava/lang/Class;Ljava/lang/Class;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=7
start local 0 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
putfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
1: aload 0
invokespecial java.lang.Object.<init>:()V
2: aload 0
aload 2
putfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
3: aload 0
aload 3
putfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
4: aload 0
aload 4
putfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
5: aload 0
aload 5
putfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
6: aload 0
aload 6
putfield sun.misc.ProxyGenerator$ProxyMethod.fromClass:Ljava/lang/Class;
7: aload 0
new java.lang.StringBuilder
dup
ldc "m"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
dup
getfield sun.misc.ProxyGenerator.proxyMethodCount:I
dup_x1
iconst_1
iadd
putfield sun.misc.ProxyGenerator.proxyMethodCount:I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
putfield sun.misc.ProxyGenerator$ProxyMethod.methodFieldName:Ljava/lang/String;
8: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lsun/misc/ProxyGenerator$ProxyMethod;
0 9 2 methodName Ljava/lang/String;
0 9 3 parameterTypes [Ljava/lang/Class;
0 9 4 returnType Ljava/lang/Class<*>;
0 9 5 exceptionTypes [Ljava/lang/Class;
0 9 6 fromClass Ljava/lang/Class<*>;
Signature: (Ljava/lang/String;[Ljava/lang/Class<*>;Ljava/lang/Class<*>;[Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
MethodParameters:
Name Flags
this$0 final
methodName
parameterTypes
returnType
exceptionTypes
fromClass
private sun.misc.ProxyGenerator$MethodInfo generateMethod();
descriptor: ()Lsun/misc/ProxyGenerator$MethodInfo;
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=13, args_size=1
start local 0 0: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
invokestatic sun.misc.ProxyGenerator.getMethodDescriptor:([Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/String;
astore 1
start local 1 1: new sun.misc.ProxyGenerator$MethodInfo
dup
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
aload 1
2: bipush 17
3: invokespecial sun.misc.ProxyGenerator$MethodInfo.<init>:(Lsun/misc/ProxyGenerator;Ljava/lang/String;Ljava/lang/String;I)V
astore 2
start local 2 4: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
arraylength
newarray 10
astore 3
start local 3 5: iconst_1
istore 4
start local 4 6: iconst_0
istore 5
start local 5 7: goto 11
8: StackMap locals: sun.misc.ProxyGenerator$ProxyMethod java.lang.String sun.misc.ProxyGenerator$MethodInfo int[] int int
StackMap stack:
aload 3
iload 5
iload 4
iastore
9: iload 4
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
iload 5
aaload
invokestatic sun.misc.ProxyGenerator.getWordsPerType:(Ljava/lang/Class;)I
iadd
istore 4
10: iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
aload 3
arraylength
if_icmplt 8
end local 5 12: iload 4
istore 5
start local 5 13: iconst_0
istore 7
start local 7 14: new java.io.DataOutputStream
dup
aload 2
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 9
start local 9 15: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iconst_0
aload 9
invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
16: aload 9
sipush 180
invokevirtual java.io.DataOutputStream.writeByte:(I)V
17: aload 9
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
18: ldc "java/lang/reflect/Proxy"
19: ldc "h"
ldc "Ljava/lang/reflect/InvocationHandler;"
20: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getFieldRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
21: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iconst_0
aload 9
invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
22: aload 9
sipush 178
invokevirtual java.io.DataOutputStream.writeByte:(I)V
23: aload 9
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
24: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
25: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.methodFieldName:Ljava/lang/String;
ldc "Ljava/lang/reflect/Method;"
26: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getFieldRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
27: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
arraylength
ifle 40
28: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
arraylength
aload 9
invokevirtual sun.misc.ProxyGenerator.code_ipush:(ILjava/io/DataOutputStream;)V
29: aload 9
sipush 189
invokevirtual java.io.DataOutputStream.writeByte:(I)V
30: aload 9
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/Object"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
31: iconst_0
istore 10
start local 10 32: goto 38
33: StackMap locals: sun.misc.ProxyGenerator$ProxyMethod java.lang.String sun.misc.ProxyGenerator$MethodInfo int[] int int top int top java.io.DataOutputStream int
StackMap stack:
aload 9
bipush 89
invokevirtual java.io.DataOutputStream.writeByte:(I)V
34: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 10
aload 9
invokevirtual sun.misc.ProxyGenerator.code_ipush:(ILjava/io/DataOutputStream;)V
35: aload 0
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
iload 10
aaload
aload 3
iload 10
iaload
aload 9
invokevirtual sun.misc.ProxyGenerator$ProxyMethod.codeWrapArgument:(Ljava/lang/Class;ILjava/io/DataOutputStream;)V
36: aload 9
bipush 83
invokevirtual java.io.DataOutputStream.writeByte:(I)V
37: iinc 10 1
StackMap locals:
StackMap stack:
38: iload 10
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
arraylength
if_icmplt 33
end local 10 39: goto 41
40: StackMap locals:
StackMap stack:
aload 9
iconst_1
invokevirtual java.io.DataOutputStream.writeByte:(I)V
41: StackMap locals:
StackMap stack:
aload 9
sipush 185
invokevirtual java.io.DataOutputStream.writeByte:(I)V
42: aload 9
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
43: ldc "java/lang/reflect/InvocationHandler"
44: ldc "invoke"
45: ldc "(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;"
46: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getInterfaceMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
47: aload 9
iconst_4
invokevirtual java.io.DataOutputStream.writeByte:(I)V
48: aload 9
iconst_0
invokevirtual java.io.DataOutputStream.writeByte:(I)V
49: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 53
50: aload 9
bipush 87
invokevirtual java.io.DataOutputStream.writeByte:(I)V
51: aload 9
sipush 177
invokevirtual java.io.DataOutputStream.writeByte:(I)V
52: goto 54
53: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.returnType:Ljava/lang/Class;
aload 9
invokevirtual sun.misc.ProxyGenerator$ProxyMethod.codeUnwrapReturnValue:(Ljava/lang/Class;Ljava/io/DataOutputStream;)V
54: StackMap locals:
StackMap stack:
aload 2
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2s
dup
istore 6
start local 6 55: istore 8
start local 8 56: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
invokestatic sun.misc.ProxyGenerator.computeUniqueCatchList:([Ljava/lang/Class;)Ljava/util/List;
astore 10
start local 10 57: aload 10
invokeinterface java.util.List.size:()I
ifle 83
58: aload 10
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 12
goto 64
StackMap locals: sun.misc.ProxyGenerator$ProxyMethod java.lang.String sun.misc.ProxyGenerator$MethodInfo int[] int int int int int java.io.DataOutputStream java.util.List top java.util.Iterator
StackMap stack:
59: aload 12
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.Class
astore 11
start local 11 60: aload 2
getfield sun.misc.ProxyGenerator$MethodInfo.exceptionTable:Ljava/util/List;
new sun.misc.ProxyGenerator$ExceptionTableEntry
dup
61: iload 7
iload 8
iload 6
62: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 11
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokespecial sun.misc.ProxyGenerator$ExceptionTableEntry.<init>:(SSSS)V
63: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 11 64: StackMap locals:
StackMap stack:
aload 12
invokeinterface java.util.Iterator.hasNext:()Z
ifne 59
65: aload 9
sipush 191
invokevirtual java.io.DataOutputStream.writeByte:(I)V
66: aload 2
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.size:()I
i2s
istore 6
67: aload 2
getfield sun.misc.ProxyGenerator$MethodInfo.exceptionTable:Ljava/util/List;
new sun.misc.ProxyGenerator$ExceptionTableEntry
dup
68: iload 7
iload 8
iload 6
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/Throwable"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokespecial sun.misc.ProxyGenerator$ExceptionTableEntry.<init>:(SSSS)V
69: invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
70: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 5
aload 9
invokevirtual sun.misc.ProxyGenerator.code_astore:(ILjava/io/DataOutputStream;)V
71: aload 9
sipush 187
invokevirtual java.io.DataOutputStream.writeByte:(I)V
72: aload 9
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
73: ldc "java/lang/reflect/UndeclaredThrowableException"
74: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
75: aload 9
bipush 89
invokevirtual java.io.DataOutputStream.writeByte:(I)V
76: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 5
aload 9
invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
77: aload 9
sipush 183
invokevirtual java.io.DataOutputStream.writeByte:(I)V
78: aload 9
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
79: ldc "java/lang/reflect/UndeclaredThrowableException"
80: ldc "<init>"
ldc "(Ljava/lang/Throwable;)V"
81: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
82: aload 9
sipush 191
invokevirtual java.io.DataOutputStream.writeByte:(I)V
83: StackMap locals: sun.misc.ProxyGenerator$ProxyMethod java.lang.String sun.misc.ProxyGenerator$MethodInfo int[] int int int int int java.io.DataOutputStream java.util.List
StackMap stack:
aload 2
getfield sun.misc.ProxyGenerator$MethodInfo.code:Ljava/io/ByteArrayOutputStream;
invokevirtual java.io.ByteArrayOutputStream.size:()I
ldc 65535
if_icmple 85
84: new java.lang.IllegalArgumentException
dup
ldc "code size limit exceeded"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
85: StackMap locals:
StackMap stack:
aload 2
bipush 10
putfield sun.misc.ProxyGenerator$MethodInfo.maxStack:S
86: aload 2
iload 5
iconst_1
iadd
i2s
putfield sun.misc.ProxyGenerator$MethodInfo.maxLocals:S
87: aload 2
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
arraylength
newarray 9
putfield sun.misc.ProxyGenerator$MethodInfo.declaredExceptions:[S
88: iconst_0
istore 11
start local 11 89: goto 94
90: StackMap locals: int
StackMap stack:
aload 2
getfield sun.misc.ProxyGenerator$MethodInfo.declaredExceptions:[S
iload 11
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
91: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
iload 11
aaload
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
92: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
sastore
93: iinc 11 1
StackMap locals:
StackMap stack:
94: iload 11
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.exceptionTypes:[Ljava/lang/Class;
arraylength
if_icmplt 90
end local 11 95: aload 2
areturn
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 96 0 this Lsun/misc/ProxyGenerator$ProxyMethod;
1 96 1 desc Ljava/lang/String;
4 96 2 minfo Lsun/misc/ProxyGenerator$MethodInfo;
5 96 3 parameterSlot [I
6 96 4 nextSlot I
7 12 5 i I
13 96 5 localSlot0 I
55 96 6 pc S
14 96 7 tryBegin S
56 96 8 tryEnd S
15 96 9 out Ljava/io/DataOutputStream;
32 39 10 i I
57 96 10 catchList Ljava/util/List<Ljava/lang/Class<*>;>;
60 64 11 ex Ljava/lang/Class<*>;
89 95 11 i I
Exceptions:
throws java.io.IOException
private void codeWrapArgument(java.lang.Class<?>, int, java.io.DataOutputStream);
descriptor: (Ljava/lang/Class;ILjava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 25
1: aload 1
invokestatic sun.misc.ProxyGenerator$PrimitiveTypeInfo.get:(Ljava/lang/Class;)Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
astore 4
start local 4 2: aload 1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpeq 7
3: aload 1
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpeq 7
4: aload 1
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpeq 7
5: aload 1
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpeq 7
6: aload 1
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 9
7: StackMap locals: sun.misc.ProxyGenerator$PrimitiveTypeInfo
StackMap stack:
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 2
aload 3
invokevirtual sun.misc.ProxyGenerator.code_iload:(ILjava/io/DataOutputStream;)V
8: goto 19
StackMap locals:
StackMap stack:
9: aload 1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 12
10: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 2
aload 3
invokevirtual sun.misc.ProxyGenerator.code_lload:(ILjava/io/DataOutputStream;)V
11: goto 19
StackMap locals:
StackMap stack:
12: aload 1
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 15
13: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 2
aload 3
invokevirtual sun.misc.ProxyGenerator.code_fload:(ILjava/io/DataOutputStream;)V
14: goto 19
StackMap locals:
StackMap stack:
15: aload 1
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 18
16: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 2
aload 3
invokevirtual sun.misc.ProxyGenerator.code_dload:(ILjava/io/DataOutputStream;)V
17: goto 19
18: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
aload 3
sipush 184
invokevirtual java.io.DataOutputStream.writeByte:(I)V
20: aload 3
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
21: aload 4
getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.wrapperClassName:Ljava/lang/String;
22: ldc "valueOf"
aload 4
getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.wrapperValueOfDesc:Ljava/lang/String;
23: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
end local 4 24: goto 26
25: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 2
aload 3
invokevirtual sun.misc.ProxyGenerator.code_aload:(ILjava/io/DataOutputStream;)V
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 Lsun/misc/ProxyGenerator$ProxyMethod;
0 27 1 type Ljava/lang/Class<*>;
0 27 2 slot I
0 27 3 out Ljava/io/DataOutputStream;
2 24 4 prim Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/Class<*>;ILjava/io/DataOutputStream;)V
MethodParameters:
Name Flags
type
slot
out
private void codeUnwrapReturnValue(java.lang.Class<?>, java.io.DataOutputStream);
descriptor: (Ljava/lang/Class;Ljava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 26
1: aload 1
invokestatic sun.misc.ProxyGenerator$PrimitiveTypeInfo.get:(Ljava/lang/Class;)Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
astore 3
start local 3 2: aload 2
sipush 192
invokevirtual java.io.DataOutputStream.writeByte:(I)V
3: aload 2
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 3
getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.wrapperClassName:Ljava/lang/String;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
4: aload 2
sipush 182
invokevirtual java.io.DataOutputStream.writeByte:(I)V
5: aload 2
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
6: aload 3
getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.wrapperClassName:Ljava/lang/String;
7: aload 3
getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.unwrapMethodName:Ljava/lang/String;
aload 3
getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.unwrapMethodDesc:Ljava/lang/String;
8: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
9: aload 1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
if_acmpeq 14
10: aload 1
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
if_acmpeq 14
11: aload 1
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
if_acmpeq 14
12: aload 1
getstatic java.lang.Character.TYPE:Ljava/lang/Class;
if_acmpeq 14
13: aload 1
getstatic java.lang.Short.TYPE:Ljava/lang/Class;
if_acmpne 16
14: StackMap locals: sun.misc.ProxyGenerator$PrimitiveTypeInfo
StackMap stack:
aload 2
sipush 172
invokevirtual java.io.DataOutputStream.writeByte:(I)V
15: goto 29
StackMap locals:
StackMap stack:
16: aload 1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 19
17: aload 2
sipush 173
invokevirtual java.io.DataOutputStream.writeByte:(I)V
18: goto 29
StackMap locals:
StackMap stack:
19: aload 1
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
if_acmpne 22
20: aload 2
sipush 174
invokevirtual java.io.DataOutputStream.writeByte:(I)V
21: goto 29
StackMap locals:
StackMap stack:
22: aload 1
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
if_acmpne 25
23: aload 2
sipush 175
invokevirtual java.io.DataOutputStream.writeByte:(I)V
24: goto 29
25: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
end local 3 26: StackMap locals:
StackMap stack:
aload 2
sipush 192
invokevirtual java.io.DataOutputStream.writeByte:(I)V
27: aload 2
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 1
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
28: aload 2
sipush 176
invokevirtual java.io.DataOutputStream.writeByte:(I)V
29: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 30 0 this Lsun/misc/ProxyGenerator$ProxyMethod;
0 30 1 type Ljava/lang/Class<*>;
0 30 2 out Ljava/io/DataOutputStream;
2 26 3 prim Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
Exceptions:
throws java.io.IOException
Signature: (Ljava/lang/Class<*>;Ljava/io/DataOutputStream;)V
MethodParameters:
Name Flags
type
out
private void codeFieldInitialization(java.io.DataOutputStream);
descriptor: (Ljava/io/DataOutputStream;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.fromClass:Ljava/lang/Class;
aload 1
invokevirtual sun.misc.ProxyGenerator.codeClassForName:(Ljava/lang/Class;Ljava/io/DataOutputStream;)V
1: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.methodName:Ljava/lang/String;
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getString:(Ljava/lang/String;)S
aload 1
invokevirtual sun.misc.ProxyGenerator.code_ldc:(ILjava/io/DataOutputStream;)V
2: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
arraylength
aload 1
invokevirtual sun.misc.ProxyGenerator.code_ipush:(ILjava/io/DataOutputStream;)V
3: aload 1
sipush 189
invokevirtual java.io.DataOutputStream.writeByte:(I)V
4: aload 1
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
ldc "java/lang/Class"
invokevirtual sun.misc.ProxyGenerator$ConstantPool.getClass:(Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
5: iconst_0
istore 2
start local 2 6: goto 20
7: StackMap locals: int
StackMap stack:
aload 1
bipush 89
invokevirtual java.io.DataOutputStream.writeByte:(I)V
8: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
iload 2
aload 1
invokevirtual sun.misc.ProxyGenerator.code_ipush:(ILjava/io/DataOutputStream;)V
9: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
iload 2
aaload
invokevirtual java.lang.Class.isPrimitive:()Z
ifeq 17
10: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
iload 2
aaload
invokestatic sun.misc.ProxyGenerator$PrimitiveTypeInfo.get:(Ljava/lang/Class;)Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
11: astore 3
start local 3 12: aload 1
sipush 178
invokevirtual java.io.DataOutputStream.writeByte:(I)V
13: aload 1
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
14: aload 3
getfield sun.misc.ProxyGenerator$PrimitiveTypeInfo.wrapperClassName:Ljava/lang/String;
ldc "TYPE"
ldc "Ljava/lang/Class;"
15: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getFieldRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
end local 3 16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
iload 2
aaload
aload 1
invokevirtual sun.misc.ProxyGenerator.codeClassForName:(Ljava/lang/Class;Ljava/io/DataOutputStream;)V
18: StackMap locals:
StackMap stack:
aload 1
bipush 83
invokevirtual java.io.DataOutputStream.writeByte:(I)V
19: iinc 2 1
StackMap locals:
StackMap stack:
20: iload 2
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.parameterTypes:[Ljava/lang/Class;
arraylength
if_icmplt 7
end local 2 21: aload 1
sipush 182
invokevirtual java.io.DataOutputStream.writeByte:(I)V
22: aload 1
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
23: ldc "java/lang/Class"
24: ldc "getMethod"
25: ldc "(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;"
26: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getMethodRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
27: aload 1
sipush 179
invokevirtual java.io.DataOutputStream.writeByte:(I)V
28: aload 1
aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.cp:Lsun/misc/ProxyGenerator$ConstantPool;
29: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.this$0:Lsun/misc/ProxyGenerator;
getfield sun.misc.ProxyGenerator.className:Ljava/lang/String;
invokestatic sun.misc.ProxyGenerator.dotToSlash:(Ljava/lang/String;)Ljava/lang/String;
30: aload 0
getfield sun.misc.ProxyGenerator$ProxyMethod.methodFieldName:Ljava/lang/String;
ldc "Ljava/lang/reflect/Method;"
31: invokevirtual sun.misc.ProxyGenerator$ConstantPool.getFieldRef:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
32: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 33 0 this Lsun/misc/ProxyGenerator$ProxyMethod;
0 33 1 out Ljava/io/DataOutputStream;
6 21 2 i I
12 16 3 prim Lsun/misc/ProxyGenerator$PrimitiveTypeInfo;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
out
}
SourceFile: "ProxyGenerator.java"
NestHost: sun.misc.ProxyGenerator
InnerClasses:
private ConstantPool = sun.misc.ProxyGenerator$ConstantPool of sun.misc.ProxyGenerator
private ExceptionTableEntry = sun.misc.ProxyGenerator$ExceptionTableEntry of sun.misc.ProxyGenerator
private MethodInfo = sun.misc.ProxyGenerator$MethodInfo of sun.misc.ProxyGenerator
private PrimitiveTypeInfo = sun.misc.ProxyGenerator$PrimitiveTypeInfo of sun.misc.ProxyGenerator
private ProxyMethod = sun.misc.ProxyGenerator$ProxyMethod of sun.misc.ProxyGenerator