class jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute extends jdk.internal.org.objectweb.asm.Attribute
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute
  super_class: jdk.internal.org.objectweb.asm.Attribute
{
  private final jdk.internal.module.ModuleHashes hashes;
    descriptor: Ljdk/internal/module/ModuleHashes;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static final boolean $assertionsDisabled;
    descriptor: Z
    flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 634
            ldc Ljdk/internal/module/ClassFileAttributes;
            invokevirtual java.lang.Class.desiredAssertionStatus:()Z
            ifne 1
            iconst_1
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_0
      StackMap locals:
      StackMap stack: int
         2: putstatic jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute.$assertionsDisabled:Z
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  void <init>(jdk.internal.module.ModuleHashes);
    descriptor: (Ljdk/internal/module/ModuleHashes;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute this
        start local 1 // jdk.internal.module.ModuleHashes hashes
         0: .line 638
            aload 0 /* this */
            ldc "ModuleHashes"
            invokespecial jdk.internal.org.objectweb.asm.Attribute.<init>:(Ljava/lang/String;)V
         1: .line 639
            aload 0 /* this */
            aload 1 /* hashes */
            putfield jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute.hashes:Ljdk/internal/module/ModuleHashes;
         2: .line 640
            return
        end local 1 // jdk.internal.module.ModuleHashes hashes
        end local 0 // jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljdk/internal/module/ClassFileAttributes$ModuleHashesAttribute;
            0    3     1  hashes  Ljdk/internal/module/ModuleHashes;
    MethodParameters:
        Name  Flags
      hashes  

  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute this
         0: .line 643
            aload 0 /* this */
            aconst_null
            invokespecial jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute.<init>:(Ljdk/internal/module/ModuleHashes;)V
         1: .line 644
            return
        end local 0 // jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/module/ClassFileAttributes$ModuleHashesAttribute;

  protected jdk.internal.org.objectweb.asm.Attribute read(jdk.internal.org.objectweb.asm.ClassReader, int, int, char[], int, jdk.internal.org.objectweb.asm.Label[]);
    descriptor: (Ljdk/internal/org/objectweb/asm/ClassReader;II[CI[Ljdk/internal/org/objectweb/asm/Label;)Ljdk/internal/org/objectweb/asm/Attribute;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=15, args_size=7
        start local 0 // jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute this
        start local 1 // jdk.internal.org.objectweb.asm.ClassReader cr
        start local 2 // int off
        start local 3 // int len
        start local 4 // char[] buf
        start local 5 // int codeOff
        start local 6 // jdk.internal.org.objectweb.asm.Label[] labels
         0: .line 654
            aload 1 /* cr */
            iload 2 /* off */
            aload 4 /* buf */
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.readUTF8:(I[C)Ljava/lang/String;
            astore 7 /* algorithm */
        start local 7 // java.lang.String algorithm
         1: .line 655
            iinc 2 /* off */ 2
         2: .line 657
            aload 1 /* cr */
            iload 2 /* off */
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.readUnsignedShort:(I)I
            istore 8 /* hashes_count */
        start local 8 // int hashes_count
         3: .line 658
            iinc 2 /* off */ 2
         4: .line 660
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 9 /* map */
        start local 9 // java.util.Map map
         5: .line 661
            iconst_0
            istore 10 /* i */
        start local 10 // int i
         6: goto 20
         7: .line 662
      StackMap locals: jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute jdk.internal.org.objectweb.asm.ClassReader int int char[] int jdk.internal.org.objectweb.asm.Label[] java.lang.String int java.util.Map int
      StackMap stack:
            aload 1 /* cr */
            iload 2 /* off */
            aload 4 /* buf */
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.readModule:(I[C)Ljava/lang/String;
            astore 11 /* mn */
        start local 11 // java.lang.String mn
         8: .line 663
            iinc 2 /* off */ 2
         9: .line 665
            aload 1 /* cr */
            iload 2 /* off */
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.readUnsignedShort:(I)I
            istore 12 /* hash_length */
        start local 12 // int hash_length
        10: .line 666
            iinc 2 /* off */ 2
        11: .line 667
            iload 12 /* hash_length */
            newarray 8
            astore 13 /* hash */
        start local 13 // byte[] hash
        12: .line 668
            iconst_0
            istore 14 /* j */
        start local 14 // int j
        13: goto 16
        14: .line 669
      StackMap locals: jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute jdk.internal.org.objectweb.asm.ClassReader int int char[] int jdk.internal.org.objectweb.asm.Label[] java.lang.String int java.util.Map int java.lang.String int byte[] int
      StackMap stack:
            aload 13 /* hash */
            iload 14 /* j */
            sipush 255
            aload 1 /* cr */
            iload 2 /* off */
            iload 14 /* j */
            iadd
            invokevirtual jdk.internal.org.objectweb.asm.ClassReader.readByte:(I)I
            iand
            i2b
            bastore
        15: .line 668
            iinc 14 /* j */ 1
      StackMap locals:
      StackMap stack:
        16: iload 14 /* j */
            iload 12 /* hash_length */
            if_icmplt 14
        end local 14 // int j
        17: .line 671
            iload 2 /* off */
            iload 12 /* hash_length */
            iadd
            istore 2 /* off */
        18: .line 673
            aload 9 /* map */
            aload 11 /* mn */
            aload 13 /* hash */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 13 // byte[] hash
        end local 12 // int hash_length
        end local 11 // java.lang.String mn
        19: .line 661
            iinc 10 /* i */ 1
      StackMap locals: jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute jdk.internal.org.objectweb.asm.ClassReader int int char[] int jdk.internal.org.objectweb.asm.Label[] java.lang.String int java.util.Map int
      StackMap stack:
        20: iload 10 /* i */
            iload 8 /* hashes_count */
            if_icmplt 7
        end local 10 // int i
        21: .line 676
            new jdk.internal.module.ModuleHashes
            dup
            aload 7 /* algorithm */
            aload 9 /* map */
            invokespecial jdk.internal.module.ModuleHashes.<init>:(Ljava/lang/String;Ljava/util/Map;)V
            astore 10 /* hashes */
        start local 10 // jdk.internal.module.ModuleHashes hashes
        22: .line 678
            new jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute
            dup
            aload 10 /* hashes */
            invokespecial jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute.<init>:(Ljdk/internal/module/ModuleHashes;)V
            areturn
        end local 10 // jdk.internal.module.ModuleHashes hashes
        end local 9 // java.util.Map map
        end local 8 // int hashes_count
        end local 7 // java.lang.String algorithm
        end local 6 // jdk.internal.org.objectweb.asm.Label[] labels
        end local 5 // int codeOff
        end local 4 // char[] buf
        end local 3 // int len
        end local 2 // int off
        end local 1 // jdk.internal.org.objectweb.asm.ClassReader cr
        end local 0 // jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   23     0          this  Ljdk/internal/module/ClassFileAttributes$ModuleHashesAttribute;
            0   23     1            cr  Ljdk/internal/org/objectweb/asm/ClassReader;
            0   23     2           off  I
            0   23     3           len  I
            0   23     4           buf  [C
            0   23     5       codeOff  I
            0   23     6        labels  [Ljdk/internal/org/objectweb/asm/Label;
            1   23     7     algorithm  Ljava/lang/String;
            3   23     8  hashes_count  I
            5   23     9           map  Ljava/util/Map<Ljava/lang/String;[B>;
            6   21    10             i  I
            8   19    11            mn  Ljava/lang/String;
           10   19    12   hash_length  I
           12   19    13          hash  [B
           13   17    14             j  I
           22   23    10        hashes  Ljdk/internal/module/ModuleHashes;
    MethodParameters:
         Name  Flags
      cr       
      off      
      len      
      buf      
      codeOff  
      labels   

  protected jdk.internal.org.objectweb.asm.ByteVector write(jdk.internal.org.objectweb.asm.ClassWriter, byte[], int, int, int);
    descriptor: (Ljdk/internal/org/objectweb/asm/ClassWriter;[BIII)Ljdk/internal/org/objectweb/asm/ByteVector;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=16, args_size=6
        start local 0 // jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute this
        start local 1 // jdk.internal.org.objectweb.asm.ClassWriter cw
        start local 2 // byte[] code
        start local 3 // int len
        start local 4 // int maxStack
        start local 5 // int maxLocals
         0: .line 688
            new jdk.internal.org.objectweb.asm.ByteVector
            dup
            invokespecial jdk.internal.org.objectweb.asm.ByteVector.<init>:()V
            astore 6 /* attr */
        start local 6 // jdk.internal.org.objectweb.asm.ByteVector attr
         1: .line 690
            aload 1 /* cw */
            aload 0 /* this */
            getfield jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute.hashes:Ljdk/internal/module/ModuleHashes;
            invokevirtual jdk.internal.module.ModuleHashes.algorithm:()Ljava/lang/String;
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.newUTF8:(Ljava/lang/String;)I
            istore 7 /* index */
        start local 7 // int index
         2: .line 691
            aload 6 /* attr */
            iload 7 /* index */
            invokevirtual jdk.internal.org.objectweb.asm.ByteVector.putShort:(I)Ljdk/internal/org/objectweb/asm/ByteVector;
            pop
         3: .line 693
            aload 0 /* this */
            getfield jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute.hashes:Ljdk/internal/module/ModuleHashes;
            invokevirtual jdk.internal.module.ModuleHashes.names:()Ljava/util/Set;
            astore 8 /* names */
        start local 8 // java.util.Set names
         4: .line 694
            aload 6 /* attr */
            aload 8 /* names */
            invokeinterface java.util.Set.size:()I
            invokevirtual jdk.internal.org.objectweb.asm.ByteVector.putShort:(I)Ljdk/internal/org/objectweb/asm/ByteVector;
            pop
         5: .line 696
            aload 8 /* names */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 10
            goto 16
      StackMap locals: jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute jdk.internal.org.objectweb.asm.ClassWriter byte[] int int int jdk.internal.org.objectweb.asm.ByteVector int java.util.Set top java.util.Iterator
      StackMap stack:
         6: aload 10
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 9 /* mn */
        start local 9 // java.lang.String mn
         7: .line 697
            aload 0 /* this */
            getfield jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute.hashes:Ljdk/internal/module/ModuleHashes;
            aload 9 /* mn */
            invokevirtual jdk.internal.module.ModuleHashes.hashFor:(Ljava/lang/String;)[B
            astore 11 /* hash */
        start local 11 // byte[] hash
         8: .line 698
            getstatic jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute.$assertionsDisabled:Z
            ifne 9
            aload 11 /* hash */
            ifnonnull 9
            new java.lang.AssertionError
            dup
            invokespecial java.lang.AssertionError.<init>:()V
            athrow
         9: .line 699
      StackMap locals: jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute jdk.internal.org.objectweb.asm.ClassWriter byte[] int int int jdk.internal.org.objectweb.asm.ByteVector int java.util.Set java.lang.String java.util.Iterator byte[]
      StackMap stack:
            aload 6 /* attr */
            aload 1 /* cw */
            aload 9 /* mn */
            invokevirtual jdk.internal.org.objectweb.asm.ClassWriter.newModule:(Ljava/lang/String;)I
            invokevirtual jdk.internal.org.objectweb.asm.ByteVector.putShort:(I)Ljdk/internal/org/objectweb/asm/ByteVector;
            pop
        10: .line 701
            aload 6 /* attr */
            aload 11 /* hash */
            arraylength
            invokevirtual jdk.internal.org.objectweb.asm.ByteVector.putShort:(I)Ljdk/internal/org/objectweb/asm/ByteVector;
            pop
        11: .line 702
            aload 11 /* hash */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 15
      StackMap locals: jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute jdk.internal.org.objectweb.asm.ClassWriter byte[] int int int jdk.internal.org.objectweb.asm.ByteVector int java.util.Set java.lang.String java.util.Iterator byte[] top int int byte[]
      StackMap stack:
        12: aload 15
            iload 13
            baload
            istore 12 /* b */
        start local 12 // byte b
        13: .line 703
            aload 6 /* attr */
            iload 12 /* b */
            invokevirtual jdk.internal.org.objectweb.asm.ByteVector.putByte:(I)Ljdk/internal/org/objectweb/asm/ByteVector;
            pop
        end local 12 // byte b
        14: .line 702
            iinc 13 1
      StackMap locals:
      StackMap stack:
        15: iload 13
            iload 14
            if_icmplt 12
        end local 11 // byte[] hash
        end local 9 // java.lang.String mn
        16: .line 696
      StackMap locals: jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute jdk.internal.org.objectweb.asm.ClassWriter byte[] int int int jdk.internal.org.objectweb.asm.ByteVector int java.util.Set top java.util.Iterator
      StackMap stack:
            aload 10
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 6
        17: .line 707
            aload 6 /* attr */
            areturn
        end local 8 // java.util.Set names
        end local 7 // int index
        end local 6 // jdk.internal.org.objectweb.asm.ByteVector attr
        end local 5 // int maxLocals
        end local 4 // int maxStack
        end local 3 // int len
        end local 2 // byte[] code
        end local 1 // jdk.internal.org.objectweb.asm.ClassWriter cw
        end local 0 // jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Ljdk/internal/module/ClassFileAttributes$ModuleHashesAttribute;
            0   18     1         cw  Ljdk/internal/org/objectweb/asm/ClassWriter;
            0   18     2       code  [B
            0   18     3        len  I
            0   18     4   maxStack  I
            0   18     5  maxLocals  I
            1   18     6       attr  Ljdk/internal/org/objectweb/asm/ByteVector;
            2   18     7      index  I
            4   18     8      names  Ljava/util/Set<Ljava/lang/String;>;
            7   16     9         mn  Ljava/lang/String;
            8   16    11       hash  [B
           13   14    12          b  B
    MethodParameters:
           Name  Flags
      cw         
      code       
      len        
      maxStack   
      maxLocals  
}
SourceFile: "ClassFileAttributes.java"
NestHost: jdk.internal.module.ClassFileAttributes
InnerClasses:
  ModuleHashesAttribute = jdk.internal.module.ClassFileAttributes$ModuleHashesAttribute of jdk.internal.module.ClassFileAttributes