final class sun.tools.jar.FingerPrint$ClassAttributes extends jdk.internal.org.objectweb.asm.ClassVisitor
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: sun.tools.jar.FingerPrint$ClassAttributes
super_class: jdk.internal.org.objectweb.asm.ClassVisitor
{
private java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String outerClassName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.lang.String superName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private int version;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int access;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private boolean publicClass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean nestedClass;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private final java.util.Set<sun.tools.jar.FingerPrint$Field> fields;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Lsun/tools/jar/FingerPrint$Field;>;
private final java.util.Set<sun.tools.jar.FingerPrint$Method> methods;
descriptor: Ljava/util/Set;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Set<Lsun/tools/jar/FingerPrint$Method;>;
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
ldc 458752
invokespecial jdk.internal.org.objectweb.asm.ClassVisitor.<init>:(I)V
1: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.tools.jar.FingerPrint$ClassAttributes.fields:Ljava/util/Set;
2: aload 0
new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
putfield sun.tools.jar.FingerPrint$ClassAttributes.methods:Ljava/util/Set;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
private boolean isPublic(int);
descriptor: (I)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
iconst_1
iand
iconst_1
if_icmpeq 3
1: iload 1
iconst_4
iand
iconst_4
if_icmpeq 3
2: iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
0 4 1 access I
MethodParameters:
Name Flags
access
public void visit(int, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[]);
descriptor: (IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
iload 1
putfield sun.tools.jar.FingerPrint$ClassAttributes.version:I
1: aload 0
iload 2
putfield sun.tools.jar.FingerPrint$ClassAttributes.access:I
2: aload 0
aload 3
putfield sun.tools.jar.FingerPrint$ClassAttributes.name:Ljava/lang/String;
3: aload 0
aload 3
ldc "$"
invokevirtual java.lang.String.contains:(Ljava/lang/CharSequence;)Z
putfield sun.tools.jar.FingerPrint$ClassAttributes.nestedClass:Z
4: aload 0
aload 5
putfield sun.tools.jar.FingerPrint$ClassAttributes.superName:Ljava/lang/String;
5: aload 0
aload 0
iload 2
invokevirtual sun.tools.jar.FingerPrint$ClassAttributes.isPublic:(I)Z
putfield sun.tools.jar.FingerPrint$ClassAttributes.publicClass:Z
6: return
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
0 7 1 version I
0 7 2 access I
0 7 3 name Ljava/lang/String;
0 7 4 signature Ljava/lang/String;
0 7 5 superName Ljava/lang/String;
0 7 6 interfaces [Ljava/lang/String;
MethodParameters:
Name Flags
version
access
name
signature
superName
interfaces
public void visitOuterClass(java.lang.String, java.lang.String, java.lang.String);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.nestedClass:Z
ifne 1
return
1: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield sun.tools.jar.FingerPrint$ClassAttributes.outerClassName:Ljava/lang/String;
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
0 3 1 owner Ljava/lang/String;
0 3 2 name Ljava/lang/String;
0 3 3 desc Ljava/lang/String;
MethodParameters:
Name Flags
owner
name
desc
public void visitInnerClass(java.lang.String, java.lang.String, java.lang.String, int);
descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.nestedClass:Z
ifne 1
return
1: StackMap locals:
StackMap stack:
aload 2
ifnonnull 2
return
2: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.name:Ljava/lang/String;
aload 1
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 3
return
3: StackMap locals:
StackMap stack:
aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.outerClassName:Ljava/lang/String;
ifnonnull 4
aload 0
aload 2
putfield sun.tools.jar.FingerPrint$ClassAttributes.outerClassName:Ljava/lang/String;
4: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
0 5 1 name Ljava/lang/String;
0 5 2 outerName Ljava/lang/String;
0 5 3 innerName Ljava/lang/String;
0 5 4 access I
MethodParameters:
Name Flags
name
outerName
innerName
access
public jdk.internal.org.objectweb.asm.FieldVisitor visitField(int, java.lang.String, java.lang.String, java.lang.String, java.lang.Object);
descriptor: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/Object;)Ljdk/internal/org/objectweb/asm/FieldVisitor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 1
invokevirtual sun.tools.jar.FingerPrint$ClassAttributes.isPublic:(I)Z
ifeq 2
1: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.fields:Ljava/util/Set;
new sun.tools.jar.FingerPrint$Field
dup
iload 1
aload 2
aload 3
invokespecial sun.tools.jar.FingerPrint$Field.<init>:(ILjava/lang/String;Ljava/lang/String;)V
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
2: StackMap locals:
StackMap stack:
aconst_null
areturn
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 3 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
0 3 1 access I
0 3 2 name Ljava/lang/String;
0 3 3 desc Ljava/lang/String;
0 3 4 signature Ljava/lang/String;
0 3 5 value Ljava/lang/Object;
MethodParameters:
Name Flags
access
name
desc
signature
value
public jdk.internal.org.objectweb.asm.MethodVisitor visitMethod(int, java.lang.String, java.lang.String, java.lang.String, java.lang.String[]);
descriptor: (ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)Ljdk/internal/org/objectweb/asm/MethodVisitor;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=11, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
iload 1
invokevirtual sun.tools.jar.FingerPrint$ClassAttributes.isPublic:(I)Z
ifeq 12
1: new java.util.HashSet
dup
invokespecial java.util.HashSet.<init>:()V
astore 6
start local 6 2: aload 5
ifnull 8
3: aload 5
dup
astore 10
arraylength
istore 9
iconst_0
istore 8
goto 7
StackMap locals: sun.tools.jar.FingerPrint$ClassAttributes int java.lang.String java.lang.String java.lang.String java.lang.String[] java.util.Set top int int java.lang.String[]
StackMap stack:
4: aload 10
iload 8
aaload
astore 7
start local 7 5: aload 6
aload 7
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 7 6: iinc 8 1
StackMap locals:
StackMap stack:
7: iload 8
iload 9
if_icmplt 4
8: StackMap locals: sun.tools.jar.FingerPrint$ClassAttributes int java.lang.String java.lang.String java.lang.String java.lang.String[] java.util.Set
StackMap stack:
aload 3
ifnull 12
aload 3
bipush 41
invokevirtual java.lang.String.lastIndexOf:(I)I
dup
istore 7
start local 7 9: iconst_m1
if_icmpeq 12
10: aload 3
iconst_0
iload 7
iconst_1
iadd
invokevirtual java.lang.String.substring:(II)Ljava/lang/String;
astore 3
11: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.methods:Ljava/util/Set;
new sun.tools.jar.FingerPrint$Method
dup
iload 1
aload 2
aload 3
aload 6
invokespecial sun.tools.jar.FingerPrint$Method.<init>:(ILjava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
end local 7 end local 6 12: StackMap locals:
StackMap stack:
aconst_null
areturn
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 Lsun/tools/jar/FingerPrint$ClassAttributes;
0 13 1 access I
0 13 2 name Ljava/lang/String;
0 13 3 desc Ljava/lang/String;
0 13 4 signature Ljava/lang/String;
0 13 5 exceptions [Ljava/lang/String;
2 12 6 exceptionSet Ljava/util/Set<Ljava/lang/String;>;
5 6 7 e Ljava/lang/String;
9 12 7 n I
MethodParameters:
Name Flags
access
name
desc
signature
exceptions
public void visitEnd();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.outerClassName:Ljava/lang/String;
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack: sun.tools.jar.FingerPrint$ClassAttributes
1: iconst_0
StackMap locals: sun.tools.jar.FingerPrint$ClassAttributes
StackMap stack: sun.tools.jar.FingerPrint$ClassAttributes int
2: putfield sun.tools.jar.FingerPrint$ClassAttributes.nestedClass:Z
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
aload 1
if_acmpne 2
iconst_1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
instanceof sun.tools.jar.FingerPrint$ClassAttributes
ifne 3
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 1
checkcast sun.tools.jar.FingerPrint$ClassAttributes
astore 2
start local 2 4: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.superName:Ljava/lang/String;
ifnull 6
5: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.superName:Ljava/lang/String;
aload 2
getfield sun.tools.jar.FingerPrint$ClassAttributes.superName:Ljava/lang/String;
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
goto 7
StackMap locals: sun.tools.jar.FingerPrint$ClassAttributes
StackMap stack:
6: iconst_1
7: StackMap locals:
StackMap stack: int
istore 3
start local 3 8: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.access:I
aload 2
getfield sun.tools.jar.FingerPrint$ClassAttributes.access:I
if_icmpne 13
9: iload 3
ifeq 13
10: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.fields:Ljava/util/Set;
aload 2
getfield sun.tools.jar.FingerPrint$ClassAttributes.fields:Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifeq 13
11: aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.methods:Ljava/util/Set;
aload 2
getfield sun.tools.jar.FingerPrint$ClassAttributes.methods:Ljava/util/Set;
invokeinterface java.util.Set.equals:(Ljava/lang/Object;)Z
ifeq 13
12: iconst_1
ireturn
StackMap locals: int
StackMap stack:
13: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
0 14 1 that Ljava/lang/Object;
4 14 2 clsAttrs Lsun/tools/jar/FingerPrint$ClassAttributes;
8 14 3 superNameOkay Z
MethodParameters:
Name Flags
that
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: bipush 17
istore 1
start local 1 1: bipush 37
iload 1
imul
aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.access:I
iadd
istore 1
2: new java.lang.StringBuilder
dup
bipush 37
iload 1
imul
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.superName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
ifnull 3
aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.superName:Ljava/lang/String;
invokevirtual java.lang.String.hashCode:()I
goto 4
StackMap locals: int
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 1
5: bipush 37
iload 1
imul
aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.fields:Ljava/util/Set;
invokeinterface java.util.Set.hashCode:()I
iadd
istore 1
6: bipush 37
iload 1
imul
aload 0
getfield sun.tools.jar.FingerPrint$ClassAttributes.methods:Ljava/util/Set;
invokeinterface java.util.Set.hashCode:()I
iadd
istore 1
7: iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lsun/tools/jar/FingerPrint$ClassAttributes;
1 8 1 result I
}
SourceFile: "FingerPrint.java"
NestHost: sun.tools.jar.FingerPrint
InnerClasses:
private final ClassAttributes = sun.tools.jar.FingerPrint$ClassAttributes of sun.tools.jar.FingerPrint
private final Field = sun.tools.jar.FingerPrint$Field of sun.tools.jar.FingerPrint
private final Method = sun.tools.jar.FingerPrint$Method of sun.tools.jar.FingerPrint