public final class jdk.internal.jimage.ImageHeader
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: jdk.internal.jimage.ImageHeader
  super_class: java.lang.Object
{
  public static final int MAGIC;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: -889267494

  public static final int MAJOR_VERSION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int MINOR_VERSION;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 0

  private static final int HEADER_SLOTS;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  private final int magic;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int majorVersion;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int minorVersion;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int flags;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int resourceCount;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int tableLength;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int locationsSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int stringsSize;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=9, locals=5, args_size=5
        start local 0 // jdk.internal.jimage.ImageHeader this
        start local 1 // int resourceCount
        start local 2 // int tableCount
        start local 3 // int locationsSize
        start local 4 // int stringsSize
         0: .line 56
            aload 0 /* this */
            ldc -889267494
            iconst_1
            iconst_0
            iconst_0
            iload 1 /* resourceCount */
         1: .line 57
            iload 2 /* tableCount */
            iload 3 /* locationsSize */
            iload 4 /* stringsSize */
            invokespecial jdk.internal.jimage.ImageHeader.<init>:(IIIIIIII)V
         2: .line 58
            return
        end local 4 // int stringsSize
        end local 3 // int locationsSize
        end local 2 // int tableCount
        end local 1 // int resourceCount
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    3     0           this  Ljdk/internal/jimage/ImageHeader;
            0    3     1  resourceCount  I
            0    3     2     tableCount  I
            0    3     3  locationsSize  I
            0    3     4    stringsSize  I
    MethodParameters:
               Name  Flags
      resourceCount  
      tableCount     
      locationsSize  
      stringsSize    

  public void <init>(int, int, int, int, int, int, int, int);
    descriptor: (IIIIIIII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=9, args_size=9
        start local 0 // jdk.internal.jimage.ImageHeader this
        start local 1 // int magic
        start local 2 // int majorVersion
        start local 3 // int minorVersion
        start local 4 // int flags
        start local 5 // int resourceCount
        start local 6 // int tableLength
        start local 7 // int locationsSize
        start local 8 // int stringsSize
         0: .line 60
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 64
            aload 0 /* this */
            iload 1 /* magic */
            putfield jdk.internal.jimage.ImageHeader.magic:I
         2: .line 65
            aload 0 /* this */
            iload 2 /* majorVersion */
            putfield jdk.internal.jimage.ImageHeader.majorVersion:I
         3: .line 66
            aload 0 /* this */
            iload 3 /* minorVersion */
            putfield jdk.internal.jimage.ImageHeader.minorVersion:I
         4: .line 67
            aload 0 /* this */
            iload 4 /* flags */
            putfield jdk.internal.jimage.ImageHeader.flags:I
         5: .line 68
            aload 0 /* this */
            iload 5 /* resourceCount */
            putfield jdk.internal.jimage.ImageHeader.resourceCount:I
         6: .line 69
            aload 0 /* this */
            iload 6 /* tableLength */
            putfield jdk.internal.jimage.ImageHeader.tableLength:I
         7: .line 70
            aload 0 /* this */
            iload 7 /* locationsSize */
            putfield jdk.internal.jimage.ImageHeader.locationsSize:I
         8: .line 71
            aload 0 /* this */
            iload 8 /* stringsSize */
            putfield jdk.internal.jimage.ImageHeader.stringsSize:I
         9: .line 72
            return
        end local 8 // int stringsSize
        end local 7 // int locationsSize
        end local 6 // int tableLength
        end local 5 // int resourceCount
        end local 4 // int flags
        end local 3 // int minorVersion
        end local 2 // int majorVersion
        end local 1 // int magic
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   10     0           this  Ljdk/internal/jimage/ImageHeader;
            0   10     1          magic  I
            0   10     2   majorVersion  I
            0   10     3   minorVersion  I
            0   10     4          flags  I
            0   10     5  resourceCount  I
            0   10     6    tableLength  I
            0   10     7  locationsSize  I
            0   10     8    stringsSize  I
    MethodParameters:
               Name  Flags
      magic          
      majorVersion   
      minorVersion   
      flags          
      resourceCount  
      tableLength    
      locationsSize  
      stringsSize    

  public static int getHeaderSize();
    descriptor: ()I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 75
            bipush 28
            ireturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  static jdk.internal.jimage.ImageHeader readFrom(java.nio.IntBuffer);
    descriptor: (Ljava/nio/IntBuffer;)Ljdk/internal/jimage/ImageHeader;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=10, locals=10, args_size=1
        start local 0 // java.nio.IntBuffer buffer
         0: .line 79
            aload 0 /* buffer */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 81
            aload 0 /* buffer */
            invokevirtual java.nio.IntBuffer.capacity:()I
            bipush 7
            if_icmpeq 5
         2: .line 82
            new java.lang.InternalError
            dup
         3: .line 83
            new java.lang.StringBuilder
            dup
            ldc "jimage header not the correct size: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* buffer */
            invokevirtual java.nio.IntBuffer.capacity:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         4: .line 82
            invokespecial java.lang.InternalError.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 86
      StackMap locals:
      StackMap stack:
            aload 0 /* buffer */
            iconst_0
            invokevirtual java.nio.IntBuffer.get:(I)I
            istore 1 /* magic */
        start local 1 // int magic
         6: .line 87
            aload 0 /* buffer */
            iconst_1
            invokevirtual java.nio.IntBuffer.get:(I)I
            istore 2 /* version */
        start local 2 // int version
         7: .line 88
            iload 2 /* version */
            bipush 16
            iushr
            istore 3 /* majorVersion */
        start local 3 // int majorVersion
         8: .line 89
            iload 2 /* version */
            ldc 65535
            iand
            istore 4 /* minorVersion */
        start local 4 // int minorVersion
         9: .line 90
            aload 0 /* buffer */
            iconst_2
            invokevirtual java.nio.IntBuffer.get:(I)I
            istore 5 /* flags */
        start local 5 // int flags
        10: .line 91
            aload 0 /* buffer */
            iconst_3
            invokevirtual java.nio.IntBuffer.get:(I)I
            istore 6 /* resourceCount */
        start local 6 // int resourceCount
        11: .line 92
            aload 0 /* buffer */
            iconst_4
            invokevirtual java.nio.IntBuffer.get:(I)I
            istore 7 /* tableLength */
        start local 7 // int tableLength
        12: .line 93
            aload 0 /* buffer */
            iconst_5
            invokevirtual java.nio.IntBuffer.get:(I)I
            istore 8 /* locationsSize */
        start local 8 // int locationsSize
        13: .line 94
            aload 0 /* buffer */
            bipush 6
            invokevirtual java.nio.IntBuffer.get:(I)I
            istore 9 /* stringsSize */
        start local 9 // int stringsSize
        14: .line 96
            new jdk.internal.jimage.ImageHeader
            dup
            iload 1 /* magic */
            iload 3 /* majorVersion */
            iload 4 /* minorVersion */
            iload 5 /* flags */
        15: .line 97
            iload 6 /* resourceCount */
            iload 7 /* tableLength */
            iload 8 /* locationsSize */
            iload 9 /* stringsSize */
        16: .line 96
            invokespecial jdk.internal.jimage.ImageHeader.<init>:(IIIIIIII)V
            areturn
        end local 9 // int stringsSize
        end local 8 // int locationsSize
        end local 7 // int tableLength
        end local 6 // int resourceCount
        end local 5 // int flags
        end local 4 // int minorVersion
        end local 3 // int majorVersion
        end local 2 // int version
        end local 1 // int magic
        end local 0 // java.nio.IntBuffer buffer
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   17     0         buffer  Ljava/nio/IntBuffer;
            6   17     1          magic  I
            7   17     2        version  I
            8   17     3   majorVersion  I
            9   17     4   minorVersion  I
           10   17     5          flags  I
           11   17     6  resourceCount  I
           12   17     7    tableLength  I
           13   17     8  locationsSize  I
           14   17     9    stringsSize  I
    MethodParameters:
        Name  Flags
      buffer  

  public void writeTo(jdk.internal.jimage.ImageStream);
    descriptor: (Ljdk/internal/jimage/ImageStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jimage.ImageHeader this
        start local 1 // jdk.internal.jimage.ImageStream stream
         0: .line 101
            aload 1 /* stream */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 102
            aload 1 /* stream */
            invokestatic jdk.internal.jimage.ImageHeader.getHeaderSize:()I
            invokevirtual jdk.internal.jimage.ImageStream.ensure:(I)V
         2: .line 103
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual jdk.internal.jimage.ImageStream.getBuffer:()Ljava/nio/ByteBuffer;
            invokevirtual jdk.internal.jimage.ImageHeader.writeTo:(Ljava/nio/ByteBuffer;)V
         3: .line 104
            return
        end local 1 // jdk.internal.jimage.ImageStream stream
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/internal/jimage/ImageHeader;
            0    4     1  stream  Ljdk/internal/jimage/ImageStream;
    MethodParameters:
        Name  Flags
      stream  

  public void writeTo(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.internal.jimage.ImageHeader this
        start local 1 // java.nio.ByteBuffer buffer
         0: .line 107
            aload 1 /* buffer */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 108
            aload 1 /* buffer */
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.magic:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         2: .line 109
            aload 1 /* buffer */
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.majorVersion:I
            bipush 16
            ishl
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.minorVersion:I
            ior
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         3: .line 110
            aload 1 /* buffer */
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.flags:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         4: .line 111
            aload 1 /* buffer */
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.resourceCount:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         5: .line 112
            aload 1 /* buffer */
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.tableLength:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         6: .line 113
            aload 1 /* buffer */
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.locationsSize:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         7: .line 114
            aload 1 /* buffer */
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.stringsSize:I
            invokevirtual java.nio.ByteBuffer.putInt:(I)Ljava/nio/ByteBuffer;
            pop
         8: .line 115
            return
        end local 1 // java.nio.ByteBuffer buffer
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Ljdk/internal/jimage/ImageHeader;
            0    9     1  buffer  Ljava/nio/ByteBuffer;
    MethodParameters:
        Name  Flags
      buffer  

  public int getMagic();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 118
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.magic:I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getMajorVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 122
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.majorVersion:I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getMinorVersion();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 126
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.minorVersion:I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 130
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.flags:I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getResourceCount();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 134
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.resourceCount:I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getTableLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 138
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.tableLength:I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getRedirectSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 142
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.tableLength:I
            iconst_4
            imul
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getOffsetsSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 146
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.tableLength:I
            iconst_4
            imul
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getLocationsSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 150
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.locationsSize:I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getStringsSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 154
            aload 0 /* this */
            getfield jdk.internal.jimage.ImageHeader.stringsSize:I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  public int getIndexSize();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 158
            invokestatic jdk.internal.jimage.ImageHeader.getHeaderSize:()I
         1: .line 159
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getRedirectSize:()I
         2: .line 158
            iadd
         3: .line 160
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getOffsetsSize:()I
         4: .line 158
            iadd
         5: .line 161
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getLocationsSize:()I
         6: .line 158
            iadd
         7: .line 162
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getStringsSize:()I
         8: .line 158
            iadd
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljdk/internal/jimage/ImageHeader;

  int getRedirectOffset();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 166
            invokestatic jdk.internal.jimage.ImageHeader.getHeaderSize:()I
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jimage/ImageHeader;

  int getOffsetsOffset();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 170
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getRedirectOffset:()I
         1: .line 171
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getRedirectSize:()I
         2: .line 170
            iadd
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jimage/ImageHeader;

  int getLocationsOffset();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 175
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getOffsetsOffset:()I
         1: .line 176
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getOffsetsSize:()I
         2: .line 175
            iadd
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jimage/ImageHeader;

  int getStringsOffset();
    descriptor: ()I
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jimage.ImageHeader this
         0: .line 180
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getLocationsOffset:()I
         1: .line 181
            aload 0 /* this */
            invokevirtual jdk.internal.jimage.ImageHeader.getLocationsSize:()I
         2: .line 180
            iadd
            ireturn
        end local 0 // jdk.internal.jimage.ImageHeader this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Ljdk/internal/jimage/ImageHeader;
}
SourceFile: "ImageHeader.java"