public class jdk.internal.foreign.HeapMemorySegmentImpl$OfChar extends jdk.internal.foreign.HeapMemorySegmentImpl<char[]>
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.foreign.HeapMemorySegmentImpl$OfChar
  super_class: jdk.internal.foreign.HeapMemorySegmentImpl
{
  void <init>(long, char[], long, int, jdk.internal.foreign.MemoryScope);
    descriptor: (J[CJILjdk/internal/foreign/MemoryScope;)V
    flags: (0x0000) 
    Code:
      stack=8, locals=8, args_size=6
        start local 0 // jdk.internal.foreign.HeapMemorySegmentImpl$OfChar this
        start local 1 // long offset
        start local 3 // char[] base
        start local 4 // long length
        start local 6 // int mask
        start local 7 // jdk.internal.foreign.MemoryScope scope
         0: .line 110
            aload 0 /* this */
            lload 1 /* offset */
            aload 3 /* base */
            lload 4 /* length */
            iload 6 /* mask */
            aload 7 /* scope */
            invokespecial jdk.internal.foreign.HeapMemorySegmentImpl.<init>:(JLjava/lang/Object;JILjdk/internal/foreign/MemoryScope;)V
         1: .line 111
            return
        end local 7 // jdk.internal.foreign.MemoryScope scope
        end local 6 // int mask
        end local 4 // long length
        end local 3 // char[] base
        end local 1 // long offset
        end local 0 // jdk.internal.foreign.HeapMemorySegmentImpl$OfChar this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/internal/foreign/HeapMemorySegmentImpl$OfChar;
            0    2     1  offset  J
            0    2     3    base  [C
            0    2     4  length  J
            0    2     6    mask  I
            0    2     7   scope  Ljdk/internal/foreign/MemoryScope;
    MethodParameters:
        Name  Flags
      offset  
      base    
      length  
      mask    
      scope   

  jdk.internal.foreign.HeapMemorySegmentImpl$OfChar dup(long, long, int, jdk.internal.foreign.MemoryScope);
    descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/HeapMemorySegmentImpl$OfChar;
    flags: (0x0000) 
    Code:
      stack=9, locals=7, args_size=5
        start local 0 // jdk.internal.foreign.HeapMemorySegmentImpl$OfChar this
        start local 1 // long offset
        start local 3 // long size
        start local 5 // int mask
        start local 6 // jdk.internal.foreign.MemoryScope scope
         0: .line 115
            new jdk.internal.foreign.HeapMemorySegmentImpl$OfChar
            dup
            aload 0 /* this */
            getfield jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.offset:J
            lload 1 /* offset */
            ladd
            aload 0 /* this */
            getfield jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.base:Ljava/lang/Object;
            checkcast char[]
            lload 3 /* size */
            iload 5 /* mask */
            aload 6 /* scope */
            invokespecial jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.<init>:(J[CJILjdk/internal/foreign/MemoryScope;)V
            areturn
        end local 6 // jdk.internal.foreign.MemoryScope scope
        end local 5 // int mask
        end local 3 // long size
        end local 1 // long offset
        end local 0 // jdk.internal.foreign.HeapMemorySegmentImpl$OfChar this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Ljdk/internal/foreign/HeapMemorySegmentImpl$OfChar;
            0    1     1  offset  J
            0    1     3    size  J
            0    1     5    mask  I
            0    1     6   scope  Ljdk/internal/foreign/MemoryScope;
    MethodParameters:
        Name  Flags
      offset  
      size    
      mask    
      scope   

  char[] base();
    descriptor: ()[C
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.foreign.HeapMemorySegmentImpl$OfChar this
         0: .line 120
            aload 0 /* this */
            getfield jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.base:Ljava/lang/Object;
            checkcast char[]
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast char[]
            areturn
        end local 0 // jdk.internal.foreign.HeapMemorySegmentImpl$OfChar this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/foreign/HeapMemorySegmentImpl$OfChar;

  public static jdk.incubator.foreign.MemorySegment fromArray(char[]);
    descriptor: ([C)Ljdk/incubator/foreign/MemorySegment;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=4, args_size=1
        start local 0 // char[] arr
         0: .line 124
            aload 0 /* arr */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 125
            aload 0 /* arr */
            arraylength
            i2l
            getstatic jdk.internal.misc.Unsafe.ARRAY_CHAR_INDEX_SCALE:I
            i2l
            lmul
            lstore 1 /* byteSize */
        start local 1 // long byteSize
         2: .line 126
            aconst_null
            getstatic jdk.internal.foreign.MemoryScope.DUMMY_CLEANUP_ACTION:Ljava/lang/Runnable;
            aconst_null
            invokestatic jdk.internal.foreign.MemoryScope.createConfined:(Ljava/lang/Object;Ljava/lang/Runnable;Ljava/lang/ref/Cleaner;)Ljdk/internal/foreign/MemoryScope;
            astore 3 /* scope */
        start local 3 // jdk.internal.foreign.MemoryScope scope
         3: .line 127
            new jdk.internal.foreign.HeapMemorySegmentImpl$OfChar
            dup
            getstatic jdk.internal.misc.Unsafe.ARRAY_CHAR_BASE_OFFSET:I
            i2l
            aload 0 /* arr */
            lload 1 /* byteSize */
            lload 1 /* byteSize */
            invokestatic jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.defaultAccessModes:(J)I
            aload 3 /* scope */
            invokespecial jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.<init>:(J[CJILjdk/internal/foreign/MemoryScope;)V
            areturn
        end local 3 // jdk.internal.foreign.MemoryScope scope
        end local 1 // long byteSize
        end local 0 // char[] arr
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    4     0       arr  [C
            2    4     1  byteSize  J
            3    4     3     scope  Ljdk/internal/foreign/MemoryScope;
    MethodParameters:
      Name  Flags
      arr   

  java.lang.Object base();
    descriptor: ()Ljava/lang/Object;
    flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.base:()[C
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  jdk.internal.foreign.HeapMemorySegmentImpl dup(long, long, int, jdk.internal.foreign.MemoryScope);
    descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/HeapMemorySegmentImpl;
    flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=5
         0: .line 1
            aload 0
            lload 1
            lload 3
            iload 5
            aload 6
            invokevirtual jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.dup:(JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/HeapMemorySegmentImpl$OfChar;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  jdk.internal.foreign.AbstractMemorySegmentImpl dup(long, long, int, jdk.internal.foreign.MemoryScope);
    descriptor: (JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/AbstractMemorySegmentImpl;
    flags: (0x1040) ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=7, locals=7, args_size=5
         0: .line 1
            aload 0
            lload 1
            lload 3
            iload 5
            aload 6
            invokevirtual jdk.internal.foreign.HeapMemorySegmentImpl$OfChar.dup:(JJILjdk/internal/foreign/MemoryScope;)Ljdk/internal/foreign/HeapMemorySegmentImpl$OfChar;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
Signature: Ljdk/internal/foreign/HeapMemorySegmentImpl<[C>;
SourceFile: "HeapMemorySegmentImpl.java"
NestHost: jdk.internal.foreign.HeapMemorySegmentImpl
InnerClasses:
  public OfChar = jdk.internal.foreign.HeapMemorySegmentImpl$OfChar of jdk.internal.foreign.HeapMemorySegmentImpl