public class org.jruby.ext.ffi.MemoryPointer extends org.jruby.ext.ffi.Pointer
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.ffi.MemoryPointer
  super_class: org.jruby.ext.ffi.Pointer
{
  public static org.jruby.RubyClass createMemoryPointerClass(org.jruby.Ruby, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule module
         0: .line 21
            aload 1 /* module */
            ldc "MemoryPointer"
         1: .line 22
            aload 1 /* module */
            ldc "Pointer"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
         2: .line 23
            getstatic org.jruby.util.cli.Options.REIFY_FFI:Lcom/headius/options/Option;
            invokevirtual com.headius.options.Option.load:()Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            ifeq 3
            new org.jruby.ext.ffi.ReifyingAllocator
            dup
            ldc Lorg/jruby/ext/ffi/MemoryPointer;
            invokespecial org.jruby.ext.ffi.ReifyingAllocator.<init>:(Ljava/lang/Class;)V
            goto 4
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.RubyClass
         3: getstatic org.jruby.ext.ffi.MemoryPointer$MemoryPointerAllocator.INSTANCE:Lorg/jruby/runtime/ObjectAllocator;
         4: .line 21
      StackMap locals: org.jruby.Ruby org.jruby.RubyModule
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.RubyClass org.jruby.runtime.ObjectAllocator
            invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 2 /* memptrClass */
        start local 2 // org.jruby.RubyClass memptrClass
         5: .line 24
            aload 2 /* memptrClass */
            ldc Lorg/jruby/ext/ffi/MemoryPointer;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         6: .line 25
            aload 2 /* memptrClass */
            ldc Lorg/jruby/ext/ffi/MemoryPointer;
            invokevirtual org.jruby.RubyClass.defineAnnotatedConstants:(Ljava/lang/Class;)V
         7: .line 26
            aload 2 /* memptrClass */
            ldc Lorg/jruby/ext/ffi/MemoryPointer;
            invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
         8: .line 27
            aload 2 /* memptrClass */
            new org.jruby.ext.ffi.MemoryPointer$1
            dup
            invokespecial org.jruby.ext.ffi.MemoryPointer$1.<init>:()V
            putfield org.jruby.RubyClass.kindOf:Lorg/jruby/RubyModule$KindOf;
         9: .line 34
            aload 2 /* memptrClass */
            areturn
        end local 2 // org.jruby.RubyClass memptrClass
        end local 1 // org.jruby.RubyModule module
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   10     0      runtime  Lorg/jruby/Ruby;
            0   10     1       module  Lorg/jruby/RubyModule;
            5   10     2  memptrClass  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      module   

  public void <init>(org.jruby.Ruby, org.jruby.RubyClass);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
         0: .line 48
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            invokespecial org.jruby.ext.ffi.Pointer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
         1: .line 49
            return
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2    klass  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      klass    

  private void <init>(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.ext.ffi.MemoryIO, long, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/ffi/MemoryIO;JI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=7, args_size=6
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.runtime.builtin.IRubyObject klass
        start local 3 // org.jruby.ext.ffi.MemoryIO io
        start local 4 // long total
        start local 6 // int typeSize
         0: .line 52
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            checkcast org.jruby.RubyClass
            aload 3 /* io */
            lload 4 /* total */
            iload 6 /* typeSize */
            invokespecial org.jruby.ext.ffi.Pointer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/jruby/ext/ffi/MemoryIO;JI)V
         1: .line 53
            return
        end local 6 // int typeSize
        end local 4 // long total
        end local 3 // org.jruby.ext.ffi.MemoryIO io
        end local 2 // org.jruby.runtime.builtin.IRubyObject klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    2     1   runtime  Lorg/jruby/Ruby;
            0    2     2     klass  Lorg/jruby/runtime/builtin/IRubyObject;
            0    2     3        io  Lorg/jruby/ext/ffi/MemoryIO;
            0    2     4     total  J
            0    2     6  typeSize  I
    MethodParameters:
          Name  Flags
      runtime   
      klass     
      io        
      total     
      typeSize  

  private final org.jruby.runtime.builtin.IRubyObject init(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, int, int, boolean, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IIZLorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Code:
      stack=7, locals=9, args_size=7
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject rbTypeSize
        start local 3 // int count
        start local 4 // int align
        start local 5 // boolean clear
        start local 6 // org.jruby.runtime.Block block
         0: .line 56
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* rbTypeSize */
            invokestatic org.jruby.ext.ffi.MemoryPointer.calculateTypeSize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            putfield org.jruby.ext.ffi.MemoryPointer.typeSize:I
         1: .line 57
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.MemoryPointer.typeSize:I
            iload 3 /* count */
            imul
            i2l
            putfield org.jruby.ext.ffi.MemoryPointer.size:J
         2: .line 58
            aload 0 /* this */
            getfield org.jruby.ext.ffi.MemoryPointer.size:J
            lconst_0
            lcmp
            ifge 4
         3: .line 59
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "Negative size (%d objects of %d size)"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 3 /* count */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.jruby.ext.ffi.MemoryPointer.typeSize:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 61
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokestatic org.jruby.ext.ffi.Factory.getInstance:()Lorg/jruby/ext/ffi/Factory;
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
         5: .line 62
            aload 0 /* this */
            getfield org.jruby.ext.ffi.MemoryPointer.size:J
            lconst_0
            lcmp
            ifle 6
            aload 0 /* this */
            getfield org.jruby.ext.ffi.MemoryPointer.size:J
            l2i
            goto 7
      StackMap locals: org.jruby.ext.ffi.MemoryPointer org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int int org.jruby.runtime.Block
      StackMap stack: org.jruby.ext.ffi.MemoryPointer org.jruby.ext.ffi.Factory org.jruby.Ruby
         6: iconst_1
      StackMap locals: org.jruby.ext.ffi.MemoryPointer org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject int int int org.jruby.runtime.Block
      StackMap stack: org.jruby.ext.ffi.MemoryPointer org.jruby.ext.ffi.Factory org.jruby.Ruby int
         7: iload 4 /* align */
            iload 5 /* clear */
         8: .line 61
            invokevirtual org.jruby.ext.ffi.Factory.allocateDirectMemory:(Lorg/jruby/Ruby;IIZ)Lorg/jruby/ext/ffi/MemoryIO;
            invokevirtual org.jruby.ext.ffi.MemoryPointer.setMemoryIO:(Lorg/jruby/ext/ffi/MemoryIO;)Lorg/jruby/ext/ffi/MemoryIO;
            pop
         9: .line 63
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            ifnonnull 14
        10: .line 64
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            astore 7 /* runtime */
        start local 7 // org.jruby.Ruby runtime
        11: .line 65
            aload 7 /* runtime */
            aload 7 /* runtime */
            invokevirtual org.jruby.Ruby.getNoMemoryError:()Lorg/jruby/RubyClass;
        12: .line 66
            ldc "Failed to allocate %d objects of %d bytes"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.jruby.ext.ffi.MemoryPointer.typeSize:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 3 /* count */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
        13: .line 65
            invokestatic org.jruby.exceptions.RaiseException.from:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 7 // org.jruby.Ruby runtime
        14: .line 69
      StackMap locals:
      StackMap stack:
            aload 6 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 23
        15: .line 71
            aload 6 /* block */
            aload 1 /* context */
            aload 0 /* this */
            invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
            astore 8
        16: .line 73
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            checkcast org.jruby.ext.ffi.AllocatedDirectMemoryIO
            invokeinterface org.jruby.ext.ffi.AllocatedDirectMemoryIO.free:()V
        17: .line 74
            aload 0 /* this */
            new org.jruby.ext.ffi.FreedMemoryIO
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokespecial org.jruby.ext.ffi.FreedMemoryIO.<init>:(Lorg/jruby/Ruby;)V
            invokevirtual org.jruby.ext.ffi.MemoryPointer.setMemoryIO:(Lorg/jruby/ext/ffi/MemoryIO;)Lorg/jruby/ext/ffi/MemoryIO;
            pop
        18: .line 71
            aload 8
            areturn
        19: .line 72
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        20: .line 73
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            checkcast org.jruby.ext.ffi.AllocatedDirectMemoryIO
            invokeinterface org.jruby.ext.ffi.AllocatedDirectMemoryIO.free:()V
        21: .line 74
            aload 0 /* this */
            new org.jruby.ext.ffi.FreedMemoryIO
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokespecial org.jruby.ext.ffi.FreedMemoryIO.<init>:(Lorg/jruby/Ruby;)V
            invokevirtual org.jruby.ext.ffi.MemoryPointer.setMemoryIO:(Lorg/jruby/ext/ffi/MemoryIO;)Lorg/jruby/ext/ffi/MemoryIO;
            pop
        22: .line 75
            aload 7
            athrow
        23: .line 77
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 6 // org.jruby.runtime.Block block
        end local 5 // boolean clear
        end local 4 // int align
        end local 3 // int count
        end local 2 // org.jruby.runtime.builtin.IRubyObject rbTypeSize
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   24     0        this  Lorg/jruby/ext/ffi/MemoryPointer;
            0   24     1     context  Lorg/jruby/runtime/ThreadContext;
            0   24     2  rbTypeSize  Lorg/jruby/runtime/builtin/IRubyObject;
            0   24     3       count  I
            0   24     4       align  I
            0   24     5       clear  Z
            0   24     6       block  Lorg/jruby/runtime/Block;
           11   14     7     runtime  Lorg/jruby/Ruby;
      Exception table:
        from    to  target  type
          15    16      19  any
    MethodParameters:
            Name  Flags
      context     
      rbTypeSize  
      count       
      align       
      clear       
      block       

  static org.jruby.ext.ffi.MemoryPointer allocate(org.jruby.Ruby, int, int, boolean);
    descriptor: (Lorg/jruby/Ruby;IIZ)Lorg/jruby/ext/ffi/MemoryPointer;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=6, args_size=4
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int typeSize
        start local 2 // int count
        start local 3 // boolean clear
         0: .line 82
            iload 1 /* typeSize */
            iload 2 /* count */
            imul
            istore 4 /* total */
        start local 4 // int total
         1: .line 83
            invokestatic org.jruby.ext.ffi.Factory.getInstance:()Lorg/jruby/ext/ffi/Factory;
            aload 0 /* runtime */
            iload 4 /* total */
            ifle 2
            iload 4 /* total */
            goto 3
      StackMap locals: org.jruby.Ruby int int int int
      StackMap stack: org.jruby.ext.ffi.Factory org.jruby.Ruby
         2: iconst_1
      StackMap locals: org.jruby.Ruby int int int int
      StackMap stack: org.jruby.ext.ffi.Factory org.jruby.Ruby int
         3: iload 3 /* clear */
            invokevirtual org.jruby.ext.ffi.Factory.allocateDirectMemory:(Lorg/jruby/Ruby;IZ)Lorg/jruby/ext/ffi/MemoryIO;
            astore 5 /* io */
        start local 5 // org.jruby.ext.ffi.MemoryIO io
         4: .line 84
            aload 5 /* io */
            ifnonnull 8
         5: .line 85
            aload 0 /* runtime */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getNoMemoryError:()Lorg/jruby/RubyClass;
         6: .line 86
            ldc "Failed to allocate %d objects of %d bytes"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            iload 2 /* count */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            dup
            iconst_1
            iload 1 /* typeSize */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
         7: .line 85
            invokestatic org.jruby.exceptions.RaiseException.from:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         8: .line 89
      StackMap locals: org.jruby.ext.ffi.MemoryIO
      StackMap stack:
            new org.jruby.ext.ffi.MemoryPointer
            dup
            aload 0 /* runtime */
            aload 0 /* runtime */
            invokevirtual org.jruby.Ruby.getFFI:()Lorg/jruby/ext/ffi/FFI;
            getfield org.jruby.ext.ffi.FFI.memptrClass:Lorg/jruby/RubyClass;
            aload 5 /* io */
            iload 4 /* total */
            i2l
            iload 1 /* typeSize */
            invokespecial org.jruby.ext.ffi.MemoryPointer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/ffi/MemoryIO;JI)V
            areturn
        end local 5 // org.jruby.ext.ffi.MemoryIO io
        end local 4 // int total
        end local 3 // boolean clear
        end local 2 // int count
        end local 1 // int typeSize
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0   runtime  Lorg/jruby/Ruby;
            0    9     1  typeSize  I
            0    9     2     count  I
            0    9     3     clear  Z
            1    9     4     total  I
            4    9     5        io  Lorg/jruby/ext/ffi/MemoryIO;
    MethodParameters:
          Name  Flags
      runtime   
      typeSize  
      count     
      clear     

  public static org.jruby.runtime.builtin.IRubyObject from_string(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject klass
        start local 2 // org.jruby.runtime.builtin.IRubyObject s
         0: .line 94
            aload 2 /* s */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
            invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
            astore 3 /* bl */
        start local 3 // org.jruby.util.ByteList bl
         1: .line 95
            aload 1 /* klass */
            checkcast org.jruby.RubyClass
            aload 0 /* context */
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 3 /* bl */
            invokevirtual org.jruby.util.ByteList.length:()I
            iconst_1
            iadd
            invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
            getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
            invokevirtual org.jruby.RubyClass.newInstance:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            checkcast org.jruby.ext.ffi.MemoryPointer
            astore 4 /* ptr */
        start local 4 // org.jruby.ext.ffi.MemoryPointer ptr
         2: .line 96
            aload 4 /* ptr */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            lconst_0
            aload 3 /* bl */
            invokevirtual org.jruby.util.ByteList.unsafeBytes:()[B
            aload 3 /* bl */
            invokevirtual org.jruby.util.ByteList.begin:()I
            aload 3 /* bl */
            invokevirtual org.jruby.util.ByteList.length:()I
            invokevirtual org.jruby.ext.ffi.MemoryIO.putZeroTerminatedByteArray:(J[BII)V
         3: .line 98
            aload 4 /* ptr */
            areturn
        end local 4 // org.jruby.ext.ffi.MemoryPointer ptr
        end local 3 // org.jruby.util.ByteList bl
        end local 2 // org.jruby.runtime.builtin.IRubyObject s
        end local 1 // org.jruby.runtime.builtin.IRubyObject klass
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  context  Lorg/jruby/runtime/ThreadContext;
            0    4     1    klass  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2        s  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     3       bl  Lorg/jruby/util/ByteList;
            2    4     4      ptr  Lorg/jruby/ext/ffi/MemoryPointer;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"from_string"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      klass    
      s        

  public final org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=4, args_size=4
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.Block block
         0: .line 103
            aload 2 /* sizeArg */
            instanceof org.jruby.RubyFixnum
            ifeq 5
         1: .line 104
            aload 0 /* this */
            aload 1 /* context */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokestatic org.jruby.RubyFixnum.one:(Lorg/jruby/Ruby;)Lorg/jruby/RubyFixnum;
         2: .line 105
            aload 2 /* sizeArg */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_1
            iconst_1
            aload 3 /* block */
         3: .line 104
            invokevirtual org.jruby.ext.ffi.MemoryPointer.init:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IIZLorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
         4: .line 105
            goto 6
         5: .line 106
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* sizeArg */
            iconst_1
            iconst_1
            iconst_1
            aload 3 /* block */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.init:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IIZLorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
         6: .line 103
      StackMap locals:
      StackMap stack: org.jruby.runtime.builtin.IRubyObject
            areturn
        end local 3 // org.jruby.runtime.Block block
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    7     1  context  Lorg/jruby/runtime/ThreadContext;
            0    7     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      sizeArg  
      block    

  public final org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.builtin.IRubyObject count
        start local 4 // org.jruby.runtime.Block block
         0: .line 111
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* sizeArg */
            aload 3 /* count */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_1
            iconst_1
            aload 4 /* block */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.init:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IIZLorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 4 // org.jruby.runtime.Block block
        end local 3 // org.jruby.runtime.builtin.IRubyObject count
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3    count  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      sizeArg  
      count    
      block    

  public final org.jruby.runtime.builtin.IRubyObject initialize(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=6, args_size=6
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.builtin.IRubyObject count
        start local 4 // org.jruby.runtime.builtin.IRubyObject clear
        start local 5 // org.jruby.runtime.Block block
         0: .line 117
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* sizeArg */
            aload 3 /* count */
            invokestatic org.jruby.RubyNumeric.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_1
            aload 4 /* clear */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            aload 5 /* block */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.init:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IIZLorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // org.jruby.runtime.builtin.IRubyObject clear
        end local 3 // org.jruby.runtime.builtin.IRubyObject count
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3    count  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4    clear  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     5    block  Lorg/jruby/runtime/Block;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      sizeArg  
      count    
      clear    
      block    

  public final java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
         0: .line 122
            ldc "MemoryPointer[address=%#x, size=%d]"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getAddress:()J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield org.jruby.ext.ffi.MemoryPointer.size:J
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            aastore
            invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
            areturn
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/MemoryPointer;

  public org.jruby.runtime.builtin.IRubyObject op_equal(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 127
            aload 1 /* context */
            aload 0 /* this */
            aload 2 /* obj */
            if_acmpeq 6
         1: .line 128
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getAddress:()J
            lconst_0
            lcmp
            ifne 2
            aload 2 /* obj */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
            ifne 6
         2: .line 129
      StackMap locals:
      StackMap stack: org.jruby.runtime.ThreadContext
            aload 2 /* obj */
            instanceof org.jruby.ext.ffi.MemoryPointer
            ifeq 5
         3: .line 130
            aload 2 /* obj */
            checkcast org.jruby.ext.ffi.MemoryPointer
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getAddress:()J
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getAddress:()J
            lcmp
            ifne 5
         4: .line 131
            aload 2 /* obj */
            checkcast org.jruby.ext.ffi.MemoryPointer
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getSize:()J
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getSize:()J
            lcmp
            ifeq 6
      StackMap locals:
      StackMap stack: org.jruby.runtime.ThreadContext
         5: iconst_0
            goto 7
      StackMap locals:
      StackMap stack: org.jruby.runtime.ThreadContext
         6: iconst_1
         7: .line 127
      StackMap locals: org.jruby.ext.ffi.MemoryPointer org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
      StackMap stack: org.jruby.runtime.ThreadContext int
            invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject obj
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2      obj  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"=="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      obj      

  public final org.jruby.runtime.builtin.IRubyObject free(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 136
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            checkcast org.jruby.ext.ffi.AllocatedDirectMemoryIO
            invokeinterface org.jruby.ext.ffi.AllocatedDirectMemoryIO.free:()V
         1: .line 138
            aload 0 /* this */
            new org.jruby.ext.ffi.FreedMemoryIO
            dup
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            invokespecial org.jruby.ext.ffi.FreedMemoryIO.<init>:(Lorg/jruby/Ruby;)V
            invokevirtual org.jruby.ext.ffi.MemoryPointer.setMemoryIO:(Lorg/jruby/ext/ffi/MemoryIO;)Lorg/jruby/ext/ffi/MemoryIO;
            pop
         2: .line 139
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"free"})
    MethodParameters:
         Name  Flags
      context  

  public final org.jruby.runtime.builtin.IRubyObject autorelease(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject release
         0: .line 144
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            checkcast org.jruby.ext.ffi.AllocatedDirectMemoryIO
            aload 2 /* release */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            invokeinterface org.jruby.ext.ffi.AllocatedDirectMemoryIO.setAutoRelease:(Z)V
         1: .line 145
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject release
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    2     1  context  Lorg/jruby/runtime/ThreadContext;
            0    2     2  release  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"autorelease="}, required = 1)
    MethodParameters:
         Name  Flags
      context  
      release  

  public final org.jruby.runtime.builtin.IRubyObject autorelease_p(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.jruby.ext.ffi.MemoryPointer this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 150
            aload 1 /* context */
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.MemoryPointer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            checkcast org.jruby.ext.ffi.AllocatedDirectMemoryIO
            invokeinterface org.jruby.ext.ffi.AllocatedDirectMemoryIO.isAutoRelease:()Z
            invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.MemoryPointer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/ffi/MemoryPointer;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"autorelease?"})
    MethodParameters:
         Name  Flags
      context  
}
SourceFile: "MemoryPointer.java"
NestMembers:
  org.jruby.ext.ffi.MemoryPointer$1  org.jruby.ext.ffi.MemoryPointer$MemoryPointerAllocator
InnerClasses:
  org.jruby.ext.ffi.MemoryPointer$1
  private final MemoryPointerAllocator = org.jruby.ext.ffi.MemoryPointer$MemoryPointerAllocator of org.jruby.ext.ffi.MemoryPointer
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyClass(name = {"FFI::MemoryPointer"}, parent = "FFI::Pointer")