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 static final int READ;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

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

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

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

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

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

  public static <S extends jdk.incubator.foreign.MemorySegment> java.util.Spliterator<S> spliterator(S, jdk.incubator.foreign.SequenceLayout);
    descriptor: (Ljdk/incubator/foreign/MemorySegment;Ljdk/incubator/foreign/SequenceLayout;)Ljava/util/Spliterator;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.incubator.foreign.MemorySegment segment
        start local 1 // jdk.incubator.foreign.SequenceLayout layout
         0: .line 207
            aload 0 /* segment */
            aload 1 /* layout */
            invokestatic jdk.internal.foreign.AbstractMemorySegmentImpl.spliterator:(Ljdk/incubator/foreign/MemorySegment;Ljdk/incubator/foreign/SequenceLayout;)Ljava/util/Spliterator;
            areturn
        end local 1 // jdk.incubator.foreign.SequenceLayout layout
        end local 0 // jdk.incubator.foreign.MemorySegment segment
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  segment  TS;
            0    1     1   layout  Ljdk/incubator/foreign/SequenceLayout;
    Signature: <S::Ljdk/incubator/foreign/MemorySegment;>(TS;Ljdk/incubator/foreign/SequenceLayout;)Ljava/util/Spliterator<TS;>;
    MethodParameters:
         Name  Flags
      segment  
      layout   

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

  public abstract jdk.incubator.foreign.MemorySegment withOwnerThread(java.lang.Thread);
    descriptor: (Ljava/lang/Thread;)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
          Name  Flags
      newOwner  

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

  public abstract jdk.incubator.foreign.MemorySegment withAccessModes(int);
    descriptor: (I)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      accessModes  

  public abstract boolean hasAccessModes(int);
    descriptor: (I)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
             Name  Flags
      accessModes  

  public abstract int accessModes();
    descriptor: ()I
    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 void close();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract jdk.incubator.foreign.MemorySegment fill(byte);
    descriptor: (B)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      value  

  public abstract void copyFrom(jdk.incubator.foreign.MemorySegment);
    descriptor: (Ljdk/incubator/foreign/MemorySegment;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      src   

  public abstract long mismatch(jdk.incubator.foreign.MemorySegment);
    descriptor: (Ljdk/incubator/foreign/MemorySegment;)J
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      other  

  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 422
            aload 0 /* bb */
            invokestatic jdk.internal.foreign.AbstractMemorySegmentImpl.ofBuffer:(Ljava/nio/ByteBuffer;)Ljdk/internal/foreign/AbstractMemorySegmentImpl;
            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 436
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.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 450
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.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 464
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.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 477
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.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 491
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.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 505
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.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 519
            aload 0 /* arr */
            invokestatic jdk.internal.foreign.HeapMemorySegmentImpl.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 539
            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 559
            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.MappedMemorySegment mapFromPath(java.nio.file.Path, long, long, java.nio.channels.FileChannel$MapMode);
    descriptor: (Ljava/nio/file/Path;JJLjava/nio/channels/FileChannel$MapMode;)Ljdk/incubator/foreign/MappedMemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // java.nio.file.Path path
        start local 1 // long bytesOffset
        start local 3 // long bytesSize
        start local 5 // java.nio.channels.FileChannel$MapMode mapMode
         0: .line 584
            aload 0 /* path */
            lload 1 /* bytesOffset */
            lload 3 /* bytesSize */
            aload 5 /* mapMode */
            invokestatic jdk.internal.foreign.MappedMemorySegmentImpl.makeMappedSegment:(Ljava/nio/file/Path;JJLjava/nio/channels/FileChannel$MapMode;)Ljdk/incubator/foreign/MappedMemorySegment;
            areturn
        end local 5 // java.nio.channels.FileChannel$MapMode mapMode
        end local 3 // long bytesSize
        end local 1 // long bytesOffset
        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  bytesOffset  J
            0    1     3    bytesSize  J
            0    1     5      mapMode  Ljava/nio/channels/FileChannel$MapMode;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
             Name  Flags
      path         
      bytesOffset  
      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 603
            lload 0 /* bytesSize */
            lconst_0
            lcmp
            ifgt 2
         1: .line 604
            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 607
      StackMap locals:
      StackMap stack:
            lload 2 /* alignmentBytes */
            lconst_0
            lcmp
            iflt 4
         3: .line 608
            lload 2 /* alignmentBytes */
            lload 2 /* alignmentBytes */
            lconst_1
            lsub
            land
            lconst_0
            lcmp
            ifeq 5
         4: .line 609
      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 612
      StackMap locals:
      StackMap stack:
            lload 0 /* bytesSize */
            lload 2 /* alignmentBytes */
            invokestatic jdk.internal.foreign.NativeMemorySegmentImpl.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  

  public static jdk.incubator.foreign.MemorySegment ofNativeRestricted(jdk.incubator.foreign.MemoryAddress, long, java.lang.Thread, java.lang.Runnable, java.lang.Object);
    descriptor: (Ljdk/incubator/foreign/MemoryAddress;JLjava/lang/Thread;Ljava/lang/Runnable;Ljava/lang/Object;)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // jdk.incubator.foreign.MemoryAddress addr
        start local 1 // long bytesSize
        start local 3 // java.lang.Thread owner
        start local 4 // java.lang.Runnable cleanup
        start local 5 // java.lang.Object attachment
         0: .line 643
            aload 0 /* addr */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 644
            lload 1 /* bytesSize */
            lconst_0
            lcmp
            ifgt 3
         2: .line 645
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid size : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            lload 1 /* 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
         3: .line 647
      StackMap locals:
      StackMap stack:
            ldc "MemorySegment.ofNativeRestricted"
            invokestatic jdk.internal.foreign.Utils.checkRestrictedAccess:(Ljava/lang/String;)V
         4: .line 648
            aload 0 /* addr */
            lload 1 /* bytesSize */
            aload 3 /* owner */
            aload 4 /* cleanup */
            aload 5 /* attachment */
            invokestatic jdk.internal.foreign.NativeMemorySegmentImpl.makeNativeSegmentUnchecked:(Ljdk/incubator/foreign/MemoryAddress;JLjava/lang/Thread;Ljava/lang/Runnable;Ljava/lang/Object;)Ljdk/incubator/foreign/MemorySegment;
            areturn
        end local 5 // java.lang.Object attachment
        end local 4 // java.lang.Runnable cleanup
        end local 3 // java.lang.Thread owner
        end local 1 // long bytesSize
        end local 0 // jdk.incubator.foreign.MemoryAddress addr
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        addr  Ljdk/incubator/foreign/MemoryAddress;
            0    5     1   bytesSize  J
            0    5     3       owner  Ljava/lang/Thread;
            0    5     4     cleanup  Ljava/lang/Runnable;
            0    5     5  attachment  Ljava/lang/Object;
    MethodParameters:
            Name  Flags
      addr        
      bytesSize   
      owner       
      cleanup     
      attachment  
}
SourceFile: "MemorySegment.java"
InnerClasses:
  public MapMode = java.nio.channels.FileChannel$MapMode of java.nio.channels.FileChannel