public final class org.jruby.ext.ffi.Buffer extends org.jruby.ext.ffi.AbstractMemory
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.jruby.ext.ffi.Buffer
  super_class: org.jruby.ext.ffi.AbstractMemory
{
  public static final int IN;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

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

  private int inout;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public static org.jruby.RubyClass createBufferClass(org.jruby.Ruby, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyClass;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule module
         0: .line 29
            aload 1 /* module */
            ldc "Buffer"
         1: .line 30
            aload 1 /* module */
            ldc "AbstractMemory"
            invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
         2: .line 31
            getstatic org.jruby.ext.ffi.Buffer$BufferAllocator.INSTANCE:Lorg/jruby/runtime/ObjectAllocator;
         3: .line 29
            invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
            astore 2 /* result */
        start local 2 // org.jruby.RubyClass result
         4: .line 32
            aload 2 /* result */
            ldc Lorg/jruby/ext/ffi/Buffer;
            invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
         5: .line 33
            aload 2 /* result */
            ldc Lorg/jruby/ext/ffi/Buffer;
            invokevirtual org.jruby.RubyClass.defineAnnotatedConstants:(Ljava/lang/Class;)V
         6: .line 35
            aload 2 /* result */
            areturn
        end local 2 // org.jruby.RubyClass result
        end local 1 // org.jruby.RubyModule module
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0  runtime  Lorg/jruby/Ruby;
            0    7     1   module  Lorg/jruby/RubyModule;
            4    7     2   result  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=7, locals=3, args_size=3
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // org.jruby.RubyClass klass
         0: .line 47
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getFFI:()Lorg/jruby/ext/ffi/FFI;
            invokevirtual org.jruby.ext.ffi.FFI.getNullMemoryIO:()Lorg/jruby/ext/ffi/NullMemoryIO;
            lconst_0
            iconst_0
            invokespecial org.jruby.ext.ffi.AbstractMemory.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/jruby/ext/ffi/MemoryIO;JI)V
         1: .line 48
            aload 0 /* this */
            iconst_3
            putfield org.jruby.ext.ffi.Buffer.inout:I
         2: .line 49
            return
        end local 2 // org.jruby.RubyClass klass
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    3     1  runtime  Lorg/jruby/Ruby;
            0    3     2    klass  Lorg/jruby/RubyClass;
    MethodParameters:
         Name  Flags
      runtime  
      klass    

  public void <init>(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // int size
         0: .line 52
            aload 0 /* this */
            aload 1 /* runtime */
            iload 2 /* size */
            iconst_3
            invokespecial org.jruby.ext.ffi.Buffer.<init>:(Lorg/jruby/Ruby;II)V
         1: .line 53
            return
        end local 2 // int size
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    2     1  runtime  Lorg/jruby/Ruby;
            0    2     2     size  I
    MethodParameters:
         Name  Flags
      runtime  
      size     

  public void <init>(org.jruby.Ruby, int, int);
    descriptor: (Lorg/jruby/Ruby;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=4
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // int size
        start local 3 // int flags
         0: .line 56
            aload 0 /* this */
            aload 1 /* runtime */
            aload 1 /* runtime */
            invokevirtual org.jruby.Ruby.getFFI:()Lorg/jruby/ext/ffi/FFI;
            getfield org.jruby.ext.ffi.FFI.bufferClass:Lorg/jruby/RubyClass;
         1: .line 57
            aload 1 /* runtime */
            iload 2 /* size */
            invokestatic org.jruby.ext.ffi.Buffer.allocateMemoryIO:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/ffi/MemoryIO;
            iload 2 /* size */
            i2l
            iconst_1
            iload 3 /* flags */
            invokespecial org.jruby.ext.ffi.Buffer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/ffi/MemoryIO;JII)V
         2: .line 58
            return
        end local 3 // int flags
        end local 2 // int size
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    3     1  runtime  Lorg/jruby/Ruby;
            0    3     2     size  I
            0    3     3    flags  I
    MethodParameters:
         Name  Flags
      runtime  
      size     
      flags    

  private void <init>(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject, org.jruby.ext.ffi.MemoryIO, long, int, int);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/ffi/MemoryIO;JII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=8, args_size=7
        start local 0 // org.jruby.ext.ffi.Buffer 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 size
        start local 6 // int typeSize
        start local 7 // int inout
         0: .line 61
            aload 0 /* this */
            aload 1 /* runtime */
            aload 2 /* klass */
            checkcast org.jruby.RubyClass
            aload 3 /* io */
            lload 4 /* size */
            iload 6 /* typeSize */
            invokespecial org.jruby.ext.ffi.AbstractMemory.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Lorg/jruby/ext/ffi/MemoryIO;JI)V
         1: .line 62
            aload 0 /* this */
            iload 7 /* inout */
            putfield org.jruby.ext.ffi.Buffer.inout:I
         2: .line 63
            return
        end local 7 // int inout
        end local 6 // int typeSize
        end local 4 // long size
        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.Buffer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/jruby/ext/ffi/Buffer;
            0    3     1   runtime  Lorg/jruby/Ruby;
            0    3     2     klass  Lorg/jruby/runtime/builtin/IRubyObject;
            0    3     3        io  Lorg/jruby/ext/ffi/MemoryIO;
            0    3     4      size  J
            0    3     6  typeSize  I
            0    3     7     inout  I
    MethodParameters:
          Name  Flags
      runtime   
      klass     
      io        
      size      
      typeSize  
      inout     

  private static final int getCount(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject countArg
         0: .line 66
            aload 0 /* countArg */
            instanceof org.jruby.RubyFixnum
            ifeq 1
            aload 0 /* countArg */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // org.jruby.runtime.builtin.IRubyObject countArg
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0  countArg  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
          Name  Flags
      countArg  

  private static org.jruby.ext.ffi.Buffer allocate(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, int, int);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=9, locals=7, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // int count
        start local 4 // int flags
         0: .line 71
            aload 0 /* context */
            aload 2 /* sizeArg */
            invokestatic org.jruby.ext.ffi.Buffer.calculateTypeSize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            istore 5 /* typeSize */
        start local 5 // int typeSize
         1: .line 72
            iload 5 /* typeSize */
            iload 3 /* count */
            imul
            istore 6 /* total */
        start local 6 // int total
         2: .line 73
            new org.jruby.ext.ffi.Buffer
            dup
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 1 /* recv */
         3: .line 74
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            iload 6 /* total */
            invokestatic org.jruby.ext.ffi.Buffer.allocateMemoryIO:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/ffi/MemoryIO;
            iload 6 /* total */
            i2l
            iload 5 /* typeSize */
            iload 4 /* flags */
         4: .line 73
            invokespecial org.jruby.ext.ffi.Buffer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/ffi/MemoryIO;JII)V
            areturn
        end local 6 // int total
        end local 5 // int typeSize
        end local 4 // int flags
        end local 3 // int count
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    5     0   context  Lorg/jruby/runtime/ThreadContext;
            0    5     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     2   sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    5     3     count  I
            0    5     4     flags  I
            1    5     5  typeSize  I
            2    5     6     total  I
    MethodParameters:
         Name  Flags
      context  
      recv     
      sizeArg  
      count    
      flags    

  private org.jruby.runtime.builtin.IRubyObject init(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, int, int, org.jruby.runtime.Block);
    descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=6, args_size=6
        start local 0 // org.jruby.ext.ffi.Buffer 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 flags
        start local 5 // org.jruby.runtime.Block block
         0: .line 78
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* rbTypeSize */
            invokestatic org.jruby.ext.ffi.Buffer.calculateTypeSize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)I
            putfield org.jruby.ext.ffi.Buffer.typeSize:I
         1: .line 79
            aload 0 /* this */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.typeSize:I
            iload 3 /* count */
            imul
            i2l
            putfield org.jruby.ext.ffi.Buffer.size:J
         2: .line 80
            aload 0 /* this */
            iload 4 /* flags */
            putfield org.jruby.ext.ffi.Buffer.inout:I
         3: .line 81
            aload 0 /* this */
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.size:J
            l2i
            invokestatic org.jruby.ext.ffi.Buffer.allocateMemoryIO:(Lorg/jruby/Ruby;I)Lorg/jruby/ext/ffi/MemoryIO;
            invokevirtual org.jruby.ext.ffi.Buffer.setMemoryIO:(Lorg/jruby/ext/ffi/MemoryIO;)Lorg/jruby/ext/ffi/MemoryIO;
            pop
         4: .line 83
            aload 5 /* block */
            invokevirtual org.jruby.runtime.Block.isGiven:()Z
            ifeq 6
         5: .line 84
            aload 5 /* 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;
            pop
         6: .line 87
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            areturn
        end local 5 // org.jruby.runtime.Block block
        end local 4 // int flags
        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.Buffer this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lorg/jruby/ext/ffi/Buffer;
            0    7     1     context  Lorg/jruby/runtime/ThreadContext;
            0    7     2  rbTypeSize  Lorg/jruby/runtime/builtin/IRubyObject;
            0    7     3       count  I
            0    7     4       flags  I
            0    7     5       block  Lorg/jruby/runtime/Block;
    MethodParameters:
            Name  Flags
      context     
      rbTypeSize  
      count       
      flags       
      block       

  public 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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // org.jruby.ext.ffi.Buffer 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 92
            aload 2 /* sizeArg */
            instanceof org.jruby.RubyFixnum
            ifeq 5
         1: .line 93
            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 94
            aload 2 /* sizeArg */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_3
            aload 3 /* block */
         3: .line 93
            invokevirtual org.jruby.ext.ffi.Buffer.init:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
         4: .line 94
            goto 6
         5: .line 95
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* sizeArg */
            iconst_1
            iconst_3
            aload 3 /* block */
            invokevirtual org.jruby.ext.ffi.Buffer.init:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
         6: .line 92
      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.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    7     0     this  Lorg/jruby/ext/ffi/Buffer;
            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 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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=5, args_size=5
        start local 0 // org.jruby.ext.ffi.Buffer 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 arg2
        start local 4 // org.jruby.runtime.Block block
         0: .line 100
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* sizeArg */
            aload 3 /* arg2 */
            invokestatic org.jruby.ext.ffi.Buffer.getCount:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_3
            aload 4 /* block */
            invokevirtual org.jruby.ext.ffi.Buffer.init:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/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 arg2
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    1     1  context  Lorg/jruby/runtime/ThreadContext;
            0    1     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg2  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  
      arg2     
      block    

  public 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: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=6
        start local 0 // org.jruby.ext.ffi.Buffer 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 countArg
        start local 4 // org.jruby.runtime.builtin.IRubyObject clearArg
        start local 5 // org.jruby.runtime.Block block
         0: .line 106
            aload 0 /* this */
            aload 1 /* context */
            aload 2 /* sizeArg */
            aload 3 /* countArg */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_3
            aload 5 /* block */
            invokevirtual org.jruby.ext.ffi.Buffer.init:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;IILorg/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 clearArg
        end local 3 // org.jruby.runtime.builtin.IRubyObject countArg
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0      this  Lorg/jruby/ext/ffi/Buffer;
            0    1     1   context  Lorg/jruby/runtime/ThreadContext;
            0    1     2   sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  countArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4  clearArg  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   
      countArg  
      clearArg  
      block     

  public org.jruby.runtime.builtin.IRubyObject initialize_copy(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=3, locals=4, args_size=3
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.runtime.ThreadContext context
        start local 2 // org.jruby.runtime.builtin.IRubyObject other
         0: .line 114
            aload 0 /* this */
            aload 2 /* other */
            if_acmpne 2
         1: .line 115
            aload 0 /* this */
            areturn
         2: .line 117
      StackMap locals:
      StackMap stack:
            aload 2 /* other */
            checkcast org.jruby.ext.ffi.Buffer
            astore 3 /* orig */
        start local 3 // org.jruby.ext.ffi.Buffer orig
         3: .line 118
            aload 0 /* this */
            aload 3 /* orig */
            getfield org.jruby.ext.ffi.Buffer.typeSize:I
            putfield org.jruby.ext.ffi.Buffer.typeSize:I
         4: .line 119
            aload 0 /* this */
            aload 3 /* orig */
            getfield org.jruby.ext.ffi.Buffer.size:J
            putfield org.jruby.ext.ffi.Buffer.size:J
         5: .line 120
            aload 0 /* this */
            aload 3 /* orig */
            getfield org.jruby.ext.ffi.Buffer.inout:I
            putfield org.jruby.ext.ffi.Buffer.inout:I
         6: .line 122
            aload 0 /* this */
            aload 3 /* orig */
            invokevirtual org.jruby.ext.ffi.Buffer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            invokevirtual org.jruby.ext.ffi.MemoryIO.dup:()Lorg/jruby/ext/ffi/MemoryIO;
            invokevirtual org.jruby.ext.ffi.Buffer.setMemoryIO:(Lorg/jruby/ext/ffi/MemoryIO;)Lorg/jruby/ext/ffi/MemoryIO;
            pop
         7: .line 123
            aload 0 /* this */
            areturn
        end local 3 // org.jruby.ext.ffi.Buffer orig
        end local 2 // org.jruby.runtime.builtin.IRubyObject other
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    8     1  context  Lorg/jruby/runtime/ThreadContext;
            0    8     2    other  Lorg/jruby/runtime/builtin/IRubyObject;
            3    8     3     orig  Lorg/jruby/ext/ffi/Buffer;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(required = 1, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
    MethodParameters:
         Name  Flags
      context  
      other    

  public static org.jruby.ext.ffi.Buffer allocateInOut(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/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
         0: .line 128
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* sizeArg */
            iconst_1
            iconst_3
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"alloc_inout", "__alloc_inout"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      sizeArg  

  public static org.jruby.ext.ffi.Buffer allocateInOut(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, 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;)Lorg/jruby/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 134
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* sizeArg */
            aload 3 /* arg2 */
            invokestatic org.jruby.ext.ffi.Buffer.getCount:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_3
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"alloc_inout", "__alloc_inout"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      sizeArg  
      arg2     

  public static org.jruby.ext.ffi.Buffer allocateInOut(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, 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;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.builtin.IRubyObject countArg
        start local 4 // org.jruby.runtime.builtin.IRubyObject clearArg
         0: .line 140
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* sizeArg */
            aload 3 /* countArg */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_3
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject clearArg
        end local 3 // org.jruby.runtime.builtin.IRubyObject countArg
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2   sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  countArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4  clearArg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"alloc_inout", "__alloc_inout"}, meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      sizeArg   
      countArg  
      clearArg  

  public static org.jruby.ext.ffi.Buffer allocateInput(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/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject arg
         0: .line 145
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* arg */
            iconst_1
            iconst_1
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject arg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2      arg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new_in", "alloc_in", "__alloc_in"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      arg      

  public static org.jruby.ext.ffi.Buffer allocateInput(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, 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;)Lorg/jruby/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 150
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* sizeArg */
            aload 3 /* arg2 */
            invokestatic org.jruby.ext.ffi.Buffer.getCount:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_1
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new_in", "alloc_in", "__alloc_in"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      sizeArg  
      arg2     

  public static org.jruby.ext.ffi.Buffer allocateInput(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, 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;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.builtin.IRubyObject countArg
        start local 4 // org.jruby.runtime.builtin.IRubyObject clearArg
         0: .line 156
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* sizeArg */
            aload 3 /* countArg */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_1
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject clearArg
        end local 3 // org.jruby.runtime.builtin.IRubyObject countArg
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2   sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  countArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4  clearArg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new_in", "alloc_in", "__alloc_in"}, meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      sizeArg   
      countArg  
      clearArg  

  public static org.jruby.ext.ffi.Buffer allocateOutput(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/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
         0: .line 161
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* sizeArg */
            iconst_1
            iconst_2
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new_out", "alloc_out", "__alloc_out"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      sizeArg  

  public static org.jruby.ext.ffi.Buffer allocateOutput(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, 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;)Lorg/jruby/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.builtin.IRubyObject arg2
         0: .line 166
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* sizeArg */
            aload 3 /* arg2 */
            invokestatic org.jruby.ext.ffi.Buffer.getCount:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_2
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject arg2
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  context  Lorg/jruby/runtime/ThreadContext;
            0    1     1     recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2  sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3     arg2  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new_out", "alloc_out", "__alloc_out"}, meta = true)
    MethodParameters:
         Name  Flags
      context  
      recv     
      sizeArg  
      arg2     

  public static org.jruby.ext.ffi.Buffer allocateOutput(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.runtime.builtin.IRubyObject, 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;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/ffi/Buffer;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject recv
        start local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        start local 3 // org.jruby.runtime.builtin.IRubyObject countArg
        start local 4 // org.jruby.runtime.builtin.IRubyObject clearArg
         0: .line 172
            aload 0 /* context */
            aload 1 /* recv */
            aload 2 /* sizeArg */
            aload 3 /* countArg */
            invokestatic org.jruby.RubyFixnum.fix2int:(Lorg/jruby/runtime/builtin/IRubyObject;)I
            iconst_2
            invokestatic org.jruby.ext.ffi.Buffer.allocate:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;II)Lorg/jruby/ext/ffi/Buffer;
            areturn
        end local 4 // org.jruby.runtime.builtin.IRubyObject clearArg
        end local 3 // org.jruby.runtime.builtin.IRubyObject countArg
        end local 2 // org.jruby.runtime.builtin.IRubyObject sizeArg
        end local 1 // org.jruby.runtime.builtin.IRubyObject recv
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    1     0   context  Lorg/jruby/runtime/ThreadContext;
            0    1     1      recv  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2   sizeArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3  countArg  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     4  clearArg  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"new_out", "alloc_out", "__alloc_out"}, meta = true)
    MethodParameters:
          Name  Flags
      context   
      recv      
      sizeArg   
      countArg  
      clearArg  

  public org.jruby.runtime.builtin.IRubyObject inspect(org.jruby.runtime.ThreadContext);
    descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.runtime.ThreadContext context
         0: .line 177
            aload 1 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
         1: .line 178
            ldc "#<Buffer size=%d>"
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.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;
         2: .line 177
            invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
            areturn
        end local 1 // org.jruby.runtime.ThreadContext context
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    3     1  context  Lorg/jruby/runtime/ThreadContext;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"inspect"})
    MethodParameters:
         Name  Flags
      context  

  public final org.jruby.ext.ffi.AbstractMemory order(org.jruby.Ruby, java.nio.ByteOrder);
    descriptor: (Lorg/jruby/Ruby;Ljava/nio/ByteOrder;)Lorg/jruby/ext/ffi/AbstractMemory;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=9, locals=3, args_size=3
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // java.nio.ByteOrder order
         0: .line 183
            new org.jruby.ext.ffi.Buffer
            dup
            aload 1 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMetaClass:()Lorg/jruby/RubyClass;
         1: .line 184
            aload 2 /* order */
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            invokevirtual org.jruby.ext.ffi.MemoryIO.order:()Ljava/nio/ByteOrder;
            invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
            ifeq 2
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            goto 3
      StackMap locals: org.jruby.ext.ffi.Buffer org.jruby.Ruby java.nio.ByteOrder
      StackMap stack: new 0 new 0 org.jruby.Ruby org.jruby.RubyClass
         2: new org.jruby.ext.ffi.SwappedMemoryIO
            dup
            aload 1 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            invokespecial org.jruby.ext.ffi.SwappedMemoryIO.<init>:(Lorg/jruby/Ruby;Lorg/jruby/ext/ffi/MemoryIO;)V
         3: .line 185
      StackMap locals: org.jruby.ext.ffi.Buffer org.jruby.Ruby java.nio.ByteOrder
      StackMap stack: new 0 new 0 org.jruby.Ruby org.jruby.RubyClass org.jruby.ext.ffi.MemoryIO
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.size:J
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.typeSize:I
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.inout:I
         4: .line 183
            invokespecial org.jruby.ext.ffi.Buffer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/ffi/MemoryIO;JII)V
            areturn
        end local 2 // java.nio.ByteOrder order
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    5     1  runtime  Lorg/jruby/Ruby;
            0    5     2    order  Ljava/nio/ByteOrder;
    MethodParameters:
         Name  Flags
      runtime  
      order    

  protected org.jruby.ext.ffi.AbstractMemory slice(org.jruby.Ruby, long);
    descriptor: (Lorg/jruby/Ruby;J)Lorg/jruby/ext/ffi/AbstractMemory;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=4, args_size=3
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // long offset
         0: .line 189
            new org.jruby.ext.ffi.Buffer
            dup
            aload 1 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMetaClass:()Lorg/jruby/RubyClass;
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            lload 2 /* offset */
            invokevirtual org.jruby.ext.ffi.MemoryIO.slice:(J)Lorg/jruby/ext/ffi/MemoryIO;
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.size:J
            lload 2 /* offset */
            lsub
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.typeSize:I
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.inout:I
            invokespecial org.jruby.ext.ffi.Buffer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/ffi/MemoryIO;JII)V
            areturn
        end local 2 // long offset
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    1     1  runtime  Lorg/jruby/Ruby;
            0    1     2   offset  J
    MethodParameters:
         Name  Flags
      runtime  
      offset   

  protected org.jruby.ext.ffi.AbstractMemory slice(org.jruby.Ruby, long, long);
    descriptor: (Lorg/jruby/Ruby;JJ)Lorg/jruby/ext/ffi/AbstractMemory;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=9, locals=6, args_size=4
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // long offset
        start local 4 // long size
         0: .line 193
            new org.jruby.ext.ffi.Buffer
            dup
            aload 1 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMetaClass:()Lorg/jruby/RubyClass;
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            lload 2 /* offset */
            lload 4 /* size */
            invokevirtual org.jruby.ext.ffi.MemoryIO.slice:(JJ)Lorg/jruby/ext/ffi/MemoryIO;
            lload 4 /* size */
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.typeSize:I
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.inout:I
            invokespecial org.jruby.ext.ffi.Buffer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/ext/ffi/MemoryIO;JII)V
            areturn
        end local 4 // long size
        end local 2 // long offset
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    1     1  runtime  Lorg/jruby/Ruby;
            0    1     2   offset  J
            0    1     4     size  J
    MethodParameters:
         Name  Flags
      runtime  
      offset   
      size     

  protected org.jruby.ext.ffi.Pointer getPointer(org.jruby.Ruby, long);
    descriptor: (Lorg/jruby/Ruby;J)Lorg/jruby/ext/ffi/Pointer;
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // org.jruby.ext.ffi.Buffer this
        start local 1 // org.jruby.Ruby runtime
        start local 2 // long offset
         0: .line 197
            new org.jruby.ext.ffi.Pointer
            dup
            aload 1 /* runtime */
            aload 0 /* this */
            invokevirtual org.jruby.ext.ffi.Buffer.getMemoryIO:()Lorg/jruby/ext/ffi/MemoryIO;
            lload 2 /* offset */
            invokevirtual org.jruby.ext.ffi.MemoryIO.getMemoryIO:(J)Lorg/jruby/ext/ffi/MemoryIO;
            invokespecial org.jruby.ext.ffi.Pointer.<init>:(Lorg/jruby/Ruby;Lorg/jruby/ext/ffi/MemoryIO;)V
            areturn
        end local 2 // long offset
        end local 1 // org.jruby.Ruby runtime
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0     this  Lorg/jruby/ext/ffi/Buffer;
            0    1     1  runtime  Lorg/jruby/Ruby;
            0    1     2   offset  J
    MethodParameters:
         Name  Flags
      runtime  
      offset   

  public int getInOutFlags();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.Buffer this
         0: .line 200
            aload 0 /* this */
            getfield org.jruby.ext.ffi.Buffer.inout:I
            ireturn
        end local 0 // org.jruby.ext.ffi.Buffer this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/Buffer;

  private static org.jruby.ext.ffi.MemoryIO allocateMemoryIO(org.jruby.Ruby, int);
    descriptor: (Lorg/jruby/Ruby;I)Lorg/jruby/ext/ffi/MemoryIO;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=5, locals=2, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // int size
         0: .line 204
            invokestatic org.jruby.ext.ffi.Factory.getInstance:()Lorg/jruby/ext/ffi/Factory;
            aload 0 /* runtime */
            iload 1 /* size */
            bipush 8
            iconst_1
            invokevirtual org.jruby.ext.ffi.Factory.allocateTransientDirectMemory:(Lorg/jruby/Ruby;IIZ)Lorg/jruby/ext/ffi/MemoryIO;
            areturn
        end local 1 // int size
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    1     0  runtime  Lorg/jruby/Ruby;
            0    1     1     size  I
    MethodParameters:
         Name  Flags
      runtime  
      size     
}
SourceFile: "Buffer.java"
NestMembers:
  org.jruby.ext.ffi.Buffer$BufferAllocator
InnerClasses:
  private final BufferAllocator = org.jruby.ext.ffi.Buffer$BufferAllocator of org.jruby.ext.ffi.Buffer
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyClass(name = {"FFI::Buffer"}, parent = "FFI::AbstractMemory")