final class
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner
super_class: java.lang.Object
{
private final com.sun.tools.classfile.ClassFile ;
descriptor: Lcom/sun/tools/classfile/ClassFile;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private void (com.sun.tools.classfile.ClassFile);
descriptor: (Lcom/sun/tools/classfile/ClassFile;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.cf:Lcom/sun/tools/classfile/ClassFile;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Ljdk/tools/jlink/internal/plugins/StringSharingPlugin$CompactCPHelper$DescriptorsScanner;
0 3 1 cf Lcom/sun/tools/classfile/ClassFile;
MethodParameters:
Name Flags
cf
private java.util.Set<java.lang.Integer> scan();
descriptor: ()Ljava/util/Set;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=1
start local 0 0: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanConstantPool:(Ljava/util/Set;)V
2: aload 0
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanFields:(Ljava/util/Set;)V
3: aload 0
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanMethods:(Ljava/util/Set;)V
4: aload 0
aload 0
getfield jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.cf:Lcom/sun/tools/classfile/ClassFile;
getfield com.sun.tools.classfile.ClassFile.attributes:Lcom/sun/tools/classfile/Attributes;
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanAttributes:(Lcom/sun/tools/classfile/Attributes;Ljava/util/Set;)V
5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljdk/tools/jlink/internal/plugins/StringSharingPlugin$CompactCPHelper$DescriptorsScanner;
1 6 1 utf8Descriptors Ljava/util/Set<Ljava/lang/Integer;>;
Exceptions:
throws java.lang.Exception
Signature: ()Ljava/util/Set<Ljava/lang/Integer;>;
private void scanAttributes(com.sun.tools.classfile.Attributes, java.util.Set<java.lang.Integer>);
descriptor: (Lcom/sun/tools/classfile/Attributes;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=14, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.sun.tools.classfile.Attributes.iterator:()Ljava/util/Iterator;
astore 4
goto 54
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.classfile.Attribute
astore 3
start local 3 2: aload 3
instanceof com.sun.tools.classfile.Signature_attribute
ifeq 6
3: aload 3
checkcast com.sun.tools.classfile.Signature_attribute
astore 5
start local 5 4: aload 2
aload 5
getfield com.sun.tools.classfile.Signature_attribute.signature_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 5 5: goto 54
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator
StackMap stack:
6: aload 3
instanceof com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute
ifeq 15
7: aload 3
checkcast com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute
8: astore 5
start local 5 9: aload 5
getfield com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute.annotations:[Lcom/sun/tools/classfile/Annotation;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 13
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.RuntimeVisibleAnnotations_attribute top int int com.sun.tools.classfile.Annotation[]
StackMap stack:
10: aload 9
iload 7
aaload
astore 6
start local 6 11: aload 0
aload 6
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanAnnotation:(Lcom/sun/tools/classfile/Annotation;Ljava/util/Set;)V
end local 6 12: iinc 7 1
StackMap locals:
StackMap stack:
13: iload 7
iload 8
if_icmplt 10
end local 5 14: goto 54
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator
StackMap stack:
15: aload 3
instanceof com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute
ifeq 24
16: aload 3
checkcast com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute
17: astore 5
start local 5 18: aload 5
getfield com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute.annotations:[Lcom/sun/tools/classfile/Annotation;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 22
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.RuntimeInvisibleAnnotations_attribute top int int com.sun.tools.classfile.Annotation[]
StackMap stack:
19: aload 9
iload 7
aaload
astore 6
start local 6 20: aload 0
aload 6
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanAnnotation:(Lcom/sun/tools/classfile/Annotation;Ljava/util/Set;)V
end local 6 21: iinc 7 1
StackMap locals:
StackMap stack:
22: iload 7
iload 8
if_icmplt 19
end local 5 23: goto 54
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator
StackMap stack:
24: aload 3
instanceof com.sun.tools.classfile.RuntimeParameterAnnotations_attribute
ifeq 37
25: aload 3
checkcast com.sun.tools.classfile.RuntimeParameterAnnotations_attribute
26: astore 5
start local 5 27: aload 5
getfield com.sun.tools.classfile.RuntimeParameterAnnotations_attribute.parameter_annotations:[[Lcom/sun/tools/classfile/Annotation;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 35
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.RuntimeParameterAnnotations_attribute top int int com.sun.tools.classfile.Annotation[][]
StackMap stack:
28: aload 9
iload 7
aaload
astore 6
start local 6 29: aload 6
dup
astore 13
arraylength
istore 12
iconst_0
istore 11
goto 33
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.RuntimeParameterAnnotations_attribute com.sun.tools.classfile.Annotation[] int int com.sun.tools.classfile.Annotation[][] top int int com.sun.tools.classfile.Annotation[]
StackMap stack:
30: aload 13
iload 11
aaload
astore 10
start local 10 31: aload 0
aload 10
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanAnnotation:(Lcom/sun/tools/classfile/Annotation;Ljava/util/Set;)V
end local 10 32: iinc 11 1
StackMap locals:
StackMap stack:
33: iload 11
iload 12
if_icmplt 30
end local 6 34: iinc 7 1
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.RuntimeParameterAnnotations_attribute top int int com.sun.tools.classfile.Annotation[][]
StackMap stack:
35: iload 7
iload 8
if_icmplt 28
end local 5 36: goto 54
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator
StackMap stack:
37: aload 3
instanceof com.sun.tools.classfile.LocalVariableTable_attribute
ifeq 46
38: aload 3
checkcast com.sun.tools.classfile.LocalVariableTable_attribute
39: astore 5
start local 5 40: aload 5
getfield com.sun.tools.classfile.LocalVariableTable_attribute.local_variable_table:[Lcom/sun/tools/classfile/LocalVariableTable_attribute$Entry;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 44
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.LocalVariableTable_attribute top int int com.sun.tools.classfile.LocalVariableTable_attribute$Entry[]
StackMap stack:
41: aload 9
iload 7
aaload
astore 6
start local 6 42: aload 2
aload 6
getfield com.sun.tools.classfile.LocalVariableTable_attribute$Entry.descriptor_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 6 43: iinc 7 1
StackMap locals:
StackMap stack:
44: iload 7
iload 8
if_icmplt 41
end local 5 45: goto 54
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator
StackMap stack:
46: aload 3
instanceof com.sun.tools.classfile.LocalVariableTypeTable_attribute
ifeq 54
47: aload 3
checkcast com.sun.tools.classfile.LocalVariableTypeTable_attribute
48: astore 5
start local 5 49: aload 5
getfield com.sun.tools.classfile.LocalVariableTypeTable_attribute.local_variable_table:[Lcom/sun/tools/classfile/LocalVariableTypeTable_attribute$Entry;
dup
astore 9
arraylength
istore 8
iconst_0
istore 7
goto 53
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set com.sun.tools.classfile.Attribute java.util.Iterator com.sun.tools.classfile.LocalVariableTypeTable_attribute top int int com.sun.tools.classfile.LocalVariableTypeTable_attribute$Entry[]
StackMap stack:
50: aload 9
iload 7
aaload
astore 6
start local 6 51: aload 2
aload 6
getfield com.sun.tools.classfile.LocalVariableTypeTable_attribute$Entry.signature_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 6 52: iinc 7 1
StackMap locals:
StackMap stack:
53: iload 7
iload 8
if_icmplt 50
end local 5 end local 3 54: StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Attributes java.util.Set top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
55: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 56 0 this Ljdk/tools/jlink/internal/plugins/StringSharingPlugin$CompactCPHelper$DescriptorsScanner;
0 56 1 attributes Lcom/sun/tools/classfile/Attributes;
0 56 2 utf8Descriptors Ljava/util/Set<Ljava/lang/Integer;>;
2 54 3 a Lcom/sun/tools/classfile/Attribute;
4 5 5 sig Lcom/sun/tools/classfile/Signature_attribute;
9 14 5 an Lcom/sun/tools/classfile/RuntimeVisibleAnnotations_attribute;
11 12 6 annotation Lcom/sun/tools/classfile/Annotation;
18 23 5 an Lcom/sun/tools/classfile/RuntimeInvisibleAnnotations_attribute;
20 21 6 annotation Lcom/sun/tools/classfile/Annotation;
27 36 5 rap Lcom/sun/tools/classfile/RuntimeParameterAnnotations_attribute;
29 34 6 arr [Lcom/sun/tools/classfile/Annotation;
31 32 10 an Lcom/sun/tools/classfile/Annotation;
40 45 5 lvt Lcom/sun/tools/classfile/LocalVariableTable_attribute;
42 43 6 entry Lcom/sun/tools/classfile/LocalVariableTable_attribute$Entry;
49 54 5 lvt Lcom/sun/tools/classfile/LocalVariableTypeTable_attribute;
51 52 6 entry Lcom/sun/tools/classfile/LocalVariableTypeTable_attribute$Entry;
Exceptions:
throws java.lang.Exception
Signature: (Lcom/sun/tools/classfile/Attributes;Ljava/util/Set<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
attributes
utf8Descriptors
private void scanAnnotation(com.sun.tools.classfile.Annotation, java.util.Set<java.lang.Integer>);
descriptor: (Lcom/sun/tools/classfile/Annotation;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 2
aload 1
getfield com.sun.tools.classfile.Annotation.type_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
1: aload 1
getfield com.sun.tools.classfile.Annotation.element_value_pairs:[Lcom/sun/tools/classfile/Annotation$element_value_pair;
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 6
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Annotation java.util.Set top int int com.sun.tools.classfile.Annotation$element_value_pair[]
StackMap stack:
2: aload 6
iload 4
aaload
astore 3
start local 3 3: aload 2
aload 3
getfield com.sun.tools.classfile.Annotation$element_value_pair.element_name_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: aload 0
aload 3
getfield com.sun.tools.classfile.Annotation$element_value_pair.value:Lcom/sun/tools/classfile/Annotation$element_value;
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanElementValue:(Lcom/sun/tools/classfile/Annotation$element_value;Ljava/util/Set;)V
end local 3 5: iinc 4 1
StackMap locals:
StackMap stack:
6: iload 4
iload 5
if_icmplt 2
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/tools/jlink/internal/plugins/StringSharingPlugin$CompactCPHelper$DescriptorsScanner;
0 8 1 annotation Lcom/sun/tools/classfile/Annotation;
0 8 2 utf8Descriptors Ljava/util/Set<Ljava/lang/Integer;>;
3 5 3 evp Lcom/sun/tools/classfile/Annotation$element_value_pair;
Exceptions:
throws java.lang.Exception
Signature: (Lcom/sun/tools/classfile/Annotation;Ljava/util/Set<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
annotation
utf8Descriptors
private void scanElementValue(com.sun.tools.classfile.Annotation$element_value, java.util.Set<java.lang.Integer>);
descriptor: (Lcom/sun/tools/classfile/Annotation$element_value;Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof com.sun.tools.classfile.Annotation$Enum_element_value
ifeq 4
1: aload 1
checkcast com.sun.tools.classfile.Annotation$Enum_element_value
2: astore 3
start local 3 3: aload 2
aload 3
getfield com.sun.tools.classfile.Annotation$Enum_element_value.type_name_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 3 4: StackMap locals:
StackMap stack:
aload 1
instanceof com.sun.tools.classfile.Annotation$Class_element_value
ifeq 8
5: aload 1
checkcast com.sun.tools.classfile.Annotation$Class_element_value
6: astore 3
start local 3 7: aload 2
aload 3
getfield com.sun.tools.classfile.Annotation$Class_element_value.class_info_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 3 8: StackMap locals:
StackMap stack:
aload 1
instanceof com.sun.tools.classfile.Annotation$Annotation_element_value
ifeq 12
9: aload 1
checkcast com.sun.tools.classfile.Annotation$Annotation_element_value
10: astore 3
start local 3 11: aload 0
aload 3
getfield com.sun.tools.classfile.Annotation$Annotation_element_value.annotation_value:Lcom/sun/tools/classfile/Annotation;
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanAnnotation:(Lcom/sun/tools/classfile/Annotation;Ljava/util/Set;)V
end local 3 12: StackMap locals:
StackMap stack:
aload 1
instanceof com.sun.tools.classfile.Annotation$Array_element_value
ifeq 20
13: aload 1
checkcast com.sun.tools.classfile.Annotation$Array_element_value
14: astore 3
start local 3 15: aload 3
getfield com.sun.tools.classfile.Annotation$Array_element_value.values:[Lcom/sun/tools/classfile/Annotation$element_value;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 19
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Annotation$element_value java.util.Set com.sun.tools.classfile.Annotation$Array_element_value top int int com.sun.tools.classfile.Annotation$element_value[]
StackMap stack:
16: aload 7
iload 5
aaload
astore 4
start local 4 17: aload 0
aload 4
aload 2
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanElementValue:(Lcom/sun/tools/classfile/Annotation$element_value;Ljava/util/Set;)V
end local 4 18: iinc 5 1
StackMap locals:
StackMap stack:
19: iload 5
iload 6
if_icmplt 16
end local 3 20: StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner com.sun.tools.classfile.Annotation$element_value java.util.Set
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Ljdk/tools/jlink/internal/plugins/StringSharingPlugin$CompactCPHelper$DescriptorsScanner;
0 21 1 value Lcom/sun/tools/classfile/Annotation$element_value;
0 21 2 utf8Descriptors Ljava/util/Set<Ljava/lang/Integer;>;
3 4 3 eev Lcom/sun/tools/classfile/Annotation$Enum_element_value;
7 8 3 eev Lcom/sun/tools/classfile/Annotation$Class_element_value;
11 12 3 aev Lcom/sun/tools/classfile/Annotation$Annotation_element_value;
15 20 3 aev Lcom/sun/tools/classfile/Annotation$Array_element_value;
17 18 4 v Lcom/sun/tools/classfile/Annotation$element_value;
Exceptions:
throws java.lang.Exception
Signature: (Lcom/sun/tools/classfile/Annotation$element_value;Ljava/util/Set<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
value
utf8Descriptors
private void scanFields(java.util.Set<java.lang.Integer>);
descriptor: (Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.cf:Lcom/sun/tools/classfile/ClassFile;
getfield com.sun.tools.classfile.ClassFile.fields:[Lcom/sun/tools/classfile/Field;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner java.util.Set top int int com.sun.tools.classfile.Field[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
getfield com.sun.tools.classfile.Field.descriptor:Lcom/sun/tools/classfile/Descriptor;
getfield com.sun.tools.classfile.Descriptor.index:I
istore 6
start local 6 3: aload 1
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: aload 0
aload 2
getfield com.sun.tools.classfile.Field.attributes:Lcom/sun/tools/classfile/Attributes;
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanAttributes:(Lcom/sun/tools/classfile/Attributes;Ljava/util/Set;)V
end local 6 end local 2 5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 1
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/tools/jlink/internal/plugins/StringSharingPlugin$CompactCPHelper$DescriptorsScanner;
0 8 1 utf8Descriptors Ljava/util/Set<Ljava/lang/Integer;>;
2 5 2 field Lcom/sun/tools/classfile/Field;
3 5 6 descriptorIndex I
Exceptions:
throws java.lang.Exception
Signature: (Ljava/util/Set<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
utf8Descriptors
private void scanMethods(java.util.Set<java.lang.Integer>);
descriptor: (Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.cf:Lcom/sun/tools/classfile/ClassFile;
getfield com.sun.tools.classfile.ClassFile.methods:[Lcom/sun/tools/classfile/Method;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 6
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner java.util.Set top int int com.sun.tools.classfile.Method[]
StackMap stack:
1: aload 5
iload 3
aaload
astore 2
start local 2 2: aload 2
getfield com.sun.tools.classfile.Method.descriptor:Lcom/sun/tools/classfile/Descriptor;
getfield com.sun.tools.classfile.Descriptor.index:I
istore 6
start local 6 3: aload 1
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
4: aload 0
aload 2
getfield com.sun.tools.classfile.Method.attributes:Lcom/sun/tools/classfile/Attributes;
aload 1
invokevirtual jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.scanAttributes:(Lcom/sun/tools/classfile/Attributes;Ljava/util/Set;)V
end local 6 end local 2 5: iinc 3 1
StackMap locals:
StackMap stack:
6: iload 3
iload 4
if_icmplt 1
7: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Ljdk/tools/jlink/internal/plugins/StringSharingPlugin$CompactCPHelper$DescriptorsScanner;
0 8 1 utf8Descriptors Ljava/util/Set<Ljava/lang/Integer;>;
2 5 2 m Lcom/sun/tools/classfile/Method;
3 5 6 descriptorIndex I
Exceptions:
throws java.lang.Exception
Signature: (Ljava/util/Set<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
utf8Descriptors
private void scanConstantPool(java.util.Set<java.lang.Integer>);
descriptor: (Ljava/util/Set;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: iconst_1
istore 2
start local 2 1: goto 18
2: StackMap locals: int
StackMap stack:
aload 0
getfield jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.cf:Lcom/sun/tools/classfile/ClassFile;
getfield com.sun.tools.classfile.ClassFile.constant_pool:Lcom/sun/tools/classfile/ConstantPool;
iload 2
invokevirtual com.sun.tools.classfile.ConstantPool.get:(I)Lcom/sun/tools/classfile/ConstantPool$CPInfo;
astore 3
start local 3 3: aload 3
instanceof com.sun.tools.classfile.ConstantPool$CONSTANT_NameAndType_info
ifeq 7
4: aload 3
checkcast com.sun.tools.classfile.ConstantPool$CONSTANT_NameAndType_info
5: astore 4
start local 4 6: aload 1
aload 4
getfield com.sun.tools.classfile.ConstantPool$CONSTANT_NameAndType_info.type_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 7: StackMap locals: com.sun.tools.classfile.ConstantPool$CPInfo
StackMap stack:
aload 3
instanceof com.sun.tools.classfile.ConstantPool$CONSTANT_MethodType_info
ifeq 11
8: aload 3
checkcast com.sun.tools.classfile.ConstantPool$CONSTANT_MethodType_info
9: astore 4
start local 4 10: aload 1
aload 4
getfield com.sun.tools.classfile.ConstantPool$CONSTANT_MethodType_info.descriptor_index:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 4 11: StackMap locals:
StackMap stack:
aload 3
instanceof com.sun.tools.classfile.ConstantPool$CONSTANT_Double_info
ifne 13
12: aload 3
instanceof com.sun.tools.classfile.ConstantPool$CONSTANT_Long_info
ifeq 17
13: StackMap locals:
StackMap stack:
iinc 2 1
end local 3 14: goto 17
StackMap locals: jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner java.util.Set int
StackMap stack: com.sun.tools.classfile.ConstantPool$InvalidIndex
15: astore 3
start local 3 16: new java.io.IOException
dup
aload 3
invokespecial java.io.IOException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 3 17: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
18: iload 2
aload 0
getfield jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner.cf:Lcom/sun/tools/classfile/ClassFile;
getfield com.sun.tools.classfile.ClassFile.constant_pool:Lcom/sun/tools/classfile/ConstantPool;
invokevirtual com.sun.tools.classfile.ConstantPool.size:()I
if_icmplt 2
end local 2 19: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Ljdk/tools/jlink/internal/plugins/StringSharingPlugin$CompactCPHelper$DescriptorsScanner;
0 20 1 utf8Descriptors Ljava/util/Set<Ljava/lang/Integer;>;
1 19 2 i I
3 14 3 info Lcom/sun/tools/classfile/ConstantPool$CPInfo;
6 7 4 nameAndType Lcom/sun/tools/classfile/ConstantPool$CONSTANT_NameAndType_info;
10 11 4 mt Lcom/sun/tools/classfile/ConstantPool$CONSTANT_MethodType_info;
16 17 3 ex Lcom/sun/tools/classfile/ConstantPool$InvalidIndex;
Exception table:
from to target type
2 14 15 Class com.sun.tools.classfile.ConstantPool$InvalidIndex
Exceptions:
throws java.lang.Exception
Signature: (Ljava/util/Set<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
utf8Descriptors
}
SourceFile: "StringSharingPlugin.java"
NestHost: jdk.tools.jlink.internal.plugins.StringSharingPlugin
InnerClasses:
public Annotation_element_value = com.sun.tools.classfile.Annotation$Annotation_element_value of com.sun.tools.classfile.Annotation
public Array_element_value = com.sun.tools.classfile.Annotation$Array_element_value of com.sun.tools.classfile.Annotation
public Class_element_value = com.sun.tools.classfile.Annotation$Class_element_value of com.sun.tools.classfile.Annotation
public Enum_element_value = com.sun.tools.classfile.Annotation$Enum_element_value of com.sun.tools.classfile.Annotation
public abstract element_value = com.sun.tools.classfile.Annotation$element_value of com.sun.tools.classfile.Annotation
public element_value_pair = com.sun.tools.classfile.Annotation$element_value_pair of com.sun.tools.classfile.Annotation
public CONSTANT_Double_info = com.sun.tools.classfile.ConstantPool$CONSTANT_Double_info of com.sun.tools.classfile.ConstantPool
public CONSTANT_Long_info = com.sun.tools.classfile.ConstantPool$CONSTANT_Long_info of com.sun.tools.classfile.ConstantPool
public CONSTANT_MethodType_info = com.sun.tools.classfile.ConstantPool$CONSTANT_MethodType_info of com.sun.tools.classfile.ConstantPool
public CONSTANT_NameAndType_info = com.sun.tools.classfile.ConstantPool$CONSTANT_NameAndType_info of com.sun.tools.classfile.ConstantPool
public abstract CPInfo = com.sun.tools.classfile.ConstantPool$CPInfo of com.sun.tools.classfile.ConstantPool
public InvalidIndex = com.sun.tools.classfile.ConstantPool$InvalidIndex of com.sun.tools.classfile.ConstantPool
public Entry = com.sun.tools.classfile.LocalVariableTable_attribute$Entry of com.sun.tools.classfile.LocalVariableTable_attribute
public Entry = com.sun.tools.classfile.LocalVariableTypeTable_attribute$Entry of com.sun.tools.classfile.LocalVariableTypeTable_attribute
private final CompactCPHelper = jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper of jdk.tools.jlink.internal.plugins.StringSharingPlugin
private final DescriptorsScanner = jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper$DescriptorsScanner of jdk.tools.jlink.internal.plugins.StringSharingPlugin$CompactCPHelper