public interface jdk.incubator.foreign.MemorySegment extends java.lang.AutoCloseable
  minor version: 0
  major version: 59
  flags: flags: (0x0601) ACC_PUBLIC, ACC_INTERFACE, ACC_ABSTRACT
  this_class: jdk.incubator.foreign.MemorySegment
  super_class: java.lang.Object
{
  public abstract jdk.incubator.foreign.MemoryAddress baseAddress();
    descriptor: ()Ljdk/incubator/foreign/MemoryAddress;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract jdk.incubator.foreign.MemorySegment acquire();
    descriptor: ()Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.Thread ownerThread();
    descriptor: ()Ljava/lang/Thread;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract long byteSize();
    descriptor: ()J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract jdk.incubator.foreign.MemorySegment asReadOnly();
    descriptor: ()Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract jdk.incubator.foreign.MemorySegment asSlice(long, long);
    descriptor: (JJ)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      offset   
      newSize  

  public abstract boolean isAlive();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract boolean isReadOnly();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void close();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.nio.ByteBuffer asByteBuffer();
    descriptor: ()Ljava/nio/ByteBuffer;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract byte[] toByteArray();
    descriptor: ()[B
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public static jdk.incubator.foreign.MemorySegment ofByteBuffer(java.nio.ByteBuffer);
    descriptor: (Ljava/nio/ByteBuffer;)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // java.nio.ByteBuffer bb
         0: .line 249
            aload 0 /* bb */
            invokestatic jdk.internal.foreign.Utils.makeBufferSegment:(Ljava/nio/ByteBuffer;)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // java.nio.ByteBuffer bb
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0    bb  Ljava/nio/ByteBuffer;
    MethodParameters:
      Name  Flags
      bb    

  public static jdk.incubator.foreign.MemorySegment ofArray(byte[]);
    descriptor: ([B)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // byte[] arr
         0: .line 262
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.Utils.makeArraySegment:([B)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // byte[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [B
    MethodParameters:
      Name  Flags
      arr   

  public static jdk.incubator.foreign.MemorySegment ofArray(char[]);
    descriptor: ([C)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // char[] arr
         0: .line 275
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.Utils.makeArraySegment:([C)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // char[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [C
    MethodParameters:
      Name  Flags
      arr   

  public static jdk.incubator.foreign.MemorySegment ofArray(short[]);
    descriptor: ([S)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // short[] arr
         0: .line 288
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.Utils.makeArraySegment:([S)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // short[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [S
    MethodParameters:
      Name  Flags
      arr   

  public static jdk.incubator.foreign.MemorySegment ofArray(int[]);
    descriptor: ([I)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // int[] arr
         0: .line 301
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.Utils.makeArraySegment:([I)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // int[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [I
    MethodParameters:
      Name  Flags
      arr   

  public static jdk.incubator.foreign.MemorySegment ofArray(float[]);
    descriptor: ([F)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // float[] arr
         0: .line 314
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.Utils.makeArraySegment:([F)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // float[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [F
    MethodParameters:
      Name  Flags
      arr   

  public static jdk.incubator.foreign.MemorySegment ofArray(long[]);
    descriptor: ([J)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // long[] arr
         0: .line 327
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.Utils.makeArraySegment:([J)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // long[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [J
    MethodParameters:
      Name  Flags
      arr   

  public static jdk.incubator.foreign.MemorySegment ofArray(double[]);
    descriptor: ([D)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // double[] arr
         0: .line 340
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.Utils.makeArraySegment:([D)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // double[] arr
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0   arr  [D
    MethodParameters:
      Name  Flags
      arr   

  public static jdk.incubator.foreign.MemorySegment allocateNative(jdk.incubator.foreign.MemoryLayout);
    descriptor: (Ljdk/incubator/foreign/MemoryLayout;)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // jdk.incubator.foreign.MemoryLayout layout
         0: .line 360
            aload 0 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteSize:()J
            aload 0 /* layout */
            invokeinterface jdk.incubator.foreign.MemoryLayout.byteAlignment:()J
            invokestatic jdk.incubator.foreign.MemorySegment.allocateNative:(JJ)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // jdk.incubator.foreign.MemoryLayout layout
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0  layout  Ljdk/incubator/foreign/MemoryLayout;
    MethodParameters:
        Name  Flags
      layout  

  public static jdk.incubator.foreign.MemorySegment allocateNative(long);
    descriptor: (J)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // long bytesSize
         0: .line 380
            lload 0 /* bytesSize */
            lconst_1
            invokestatic jdk.incubator.foreign.MemorySegment.allocateNative:(JJ)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 0 // long bytesSize
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0  bytesSize  J
    MethodParameters:
           Name  Flags
      bytesSize  

  public static jdk.incubator.foreign.MemorySegment mapFromPath(java.nio.file.Path, long, java.nio.channels.FileChannel$MapMode);
    descriptor: (Ljava/nio/file/Path;JLjava/nio/channels/FileChannel$MapMode;)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // java.nio.file.Path path
        start local 1 // long bytesSize
        start local 3 // java.nio.channels.FileChannel$MapMode mapMode
         0: .line 398
            aload 0 /* path */
            lload 1 /* bytesSize */
            aload 3 /* mapMode */
            invokestatic jdk.internal.foreign.Utils.makeMappedSegment:(Ljava/nio/file/Path;JLjava/nio/channels/FileChannel$MapMode;)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 3 // java.nio.channels.FileChannel$MapMode mapMode
        end local 1 // long bytesSize
        end local 0 // java.nio.file.Path path
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       path  Ljava/nio/file/Path;
            0    1     1  bytesSize  J
            0    1     3    mapMode  Ljava/nio/channels/FileChannel$MapMode;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
           Name  Flags
      path       
      bytesSize  
      mapMode    

  public static jdk.incubator.foreign.MemorySegment allocateNative(long, long);
    descriptor: (JJ)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=4, args_size=2
        start local 0 // long bytesSize
        start local 2 // long alignmentBytes
         0: .line 416
            lload 0 /* bytesSize */
            lconst_0
            lcmp
            ifgt 2
         1: .line 417
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid allocation size : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 0 /* bytesSize */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 420
      StackMap locals:
      StackMap stack:
            lload 2 /* alignmentBytes */
            lconst_0
            lcmp
            iflt 4
         3: .line 421
            lload 2 /* alignmentBytes */
            lload 2 /* alignmentBytes */
            lconst_1
            lsub
            land
            lconst_0
            lcmp
            ifeq 5
         4: .line 422
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid alignment constraint : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 2 /* alignmentBytes */
            invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 425
      StackMap locals:
      StackMap stack:
            lload 0 /* bytesSize */
            lload 2 /* alignmentBytes */
            invokestatic jdk.internal.foreign.Utils.makeNativeSegment:(JJ)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 2 // long alignmentBytes
        end local 0 // long bytesSize
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0       bytesSize  J
            0    6     2  alignmentBytes  J
    MethodParameters:
                Name  Flags
      bytesSize       
      alignmentBytes  
}
SourceFile: "MemorySegment.java"
InnerClasses:
  public MapMode = java.nio.channels.FileChannel$MapMode of java.nio.channels.FileChannel