public class org.jruby.ext.ffi.DataConverter
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.jruby.ext.ffi.DataConverter
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.jruby.ext.ffi.DataConverter this
         0: .line 14
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // org.jruby.ext.ffi.DataConverter this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/jruby/ext/ffi/DataConverter;

  public static org.jruby.RubyModule createDataConverterModule(org.jruby.Ruby, org.jruby.RubyModule);
    descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyModule;)Lorg/jruby/RubyModule;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.Ruby runtime
        start local 1 // org.jruby.RubyModule module
         0: .line 16
            aload 1 /* module */
            ldc "DataConverter"
            invokevirtual org.jruby.RubyModule.defineModuleUnder:(Ljava/lang/String;)Lorg/jruby/RubyModule;
            astore 2 /* result */
        start local 2 // org.jruby.RubyModule result
         1: .line 17
            aload 2 /* result */
            ldc Lorg/jruby/ext/ffi/DataConverter;
            invokevirtual org.jruby.RubyModule.defineAnnotatedMethods:(Ljava/lang/Class;)V
         2: .line 18
            aload 2 /* result */
            ldc Lorg/jruby/ext/ffi/DataConverter;
            invokevirtual org.jruby.RubyModule.defineAnnotatedConstants:(Ljava/lang/Class;)V
         3: .line 20
            aload 2 /* result */
            areturn
        end local 2 // org.jruby.RubyModule result
        end local 1 // org.jruby.RubyModule module
        end local 0 // org.jruby.Ruby runtime
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0  runtime  Lorg/jruby/Ruby;
            0    4     1   module  Lorg/jruby/RubyModule;
            1    4     2   result  Lorg/jruby/RubyModule;
    MethodParameters:
         Name  Flags
      runtime  
      module   

  private static org.jruby.RubyModule module(org.jruby.runtime.builtin.IRubyObject);
    descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.jruby.runtime.builtin.IRubyObject obj
         0: .line 24
            aload 0 /* obj */
            instanceof org.jruby.RubyModule
            ifne 2
         1: .line 25
            aload 0 /* obj */
            invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
            ldc "not a module"
            invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         2: .line 28
      StackMap locals:
      StackMap stack:
            aload 0 /* obj */
            checkcast org.jruby.RubyModule
            areturn
        end local 0 // org.jruby.runtime.builtin.IRubyObject obj
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   obj  Lorg/jruby/runtime/builtin/IRubyObject;
    MethodParameters:
      Name  Flags
      obj   

  public static org.jruby.runtime.builtin.IRubyObject native_type(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=3, locals=5, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 33
            aload 1 /* self */
            invokestatic org.jruby.ext.ffi.DataConverter.module:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
            astore 3 /* m */
        start local 3 // org.jruby.RubyModule m
         1: .line 35
            aload 2 /* args */
            arraylength
            ifne 5
         2: .line 36
            aload 3 /* m */
            ldc "native_type"
            invokevirtual org.jruby.RubyModule.hasInternalVariable:(Ljava/lang/String;)Z
            ifne 4
         3: .line 37
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "native_type method not overridden and no native_type set"
            invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
         4: .line 40
      StackMap locals: org.jruby.RubyModule
      StackMap stack:
            aload 3 /* m */
            ldc "native_type"
            invokevirtual org.jruby.RubyModule.getInternalVariable:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast org.jruby.ext.ffi.Type
            areturn
         5: .line 42
      StackMap locals:
      StackMap stack:
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmpne 9
         6: .line 43
            aload 0 /* context */
            aload 2 /* args */
            iconst_0
            aaload
            invokestatic org.jruby.ext.ffi.Util.findType:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/ext/ffi/Type;
            astore 4 /* type */
        start local 4 // org.jruby.ext.ffi.Type type
         7: .line 45
            aload 3 /* m */
            ldc "native_type"
            aload 4 /* type */
            invokevirtual org.jruby.RubyModule.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
         8: .line 47
            aload 4 /* type */
            areturn
        end local 4 // org.jruby.ext.ffi.Type type
         9: .line 50
      StackMap locals:
      StackMap stack:
            aload 0 /* context */
            getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
            ldc "incorrect arguments"
            invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
            athrow
        end local 3 // org.jruby.RubyModule m
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        end local 0 // org.jruby.runtime.ThreadContext context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0  context  Lorg/jruby/runtime/ThreadContext;
            0   10     1     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0   10     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
            1   10     3        m  Lorg/jruby/RubyModule;
            7    9     4     type  Lorg/jruby/ext/ffi/Type;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"native_type"}, module = true, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      self     
      args     

  public static org.jruby.runtime.builtin.IRubyObject to_native(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/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject value
        start local 3 // org.jruby.runtime.builtin.IRubyObject ctx
         0: .line 57
            aload 2 /* value */
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject ctx
        end local 2 // org.jruby.runtime.builtin.IRubyObject value
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        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     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2    value  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3      ctx  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"to_native"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      self     
      value    
      ctx      

  public static org.jruby.runtime.builtin.IRubyObject from_native(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/runtime/builtin/IRubyObject;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=1, locals=4, args_size=4
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject value
        start local 3 // org.jruby.runtime.builtin.IRubyObject ctx
         0: .line 62
            aload 2 /* value */
            areturn
        end local 3 // org.jruby.runtime.builtin.IRubyObject ctx
        end local 2 // org.jruby.runtime.builtin.IRubyObject value
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        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     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     2    value  Lorg/jruby/runtime/builtin/IRubyObject;
            0    1     3      ctx  Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"from_native"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      self     
      value    
      ctx      

  public static org.jruby.runtime.builtin.IRubyObject reference_required_p(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: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
         0: .line 67
            aload 1 /* self */
            invokestatic org.jruby.ext.ffi.DataConverter.module:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
            ldc "reference_required"
            invokevirtual org.jruby.RubyModule.getInternalVariable:(Ljava/lang/String;)Ljava/lang/Object;
            astore 2 /* ref */
        start local 2 // java.lang.Object ref
         1: .line 68
            aload 0 /* context */
            aload 2 /* ref */
            instanceof org.jruby.runtime.builtin.IRubyObject
            ifeq 2
            aload 2 /* ref */
            checkcast org.jruby.runtime.builtin.IRubyObject
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifne 2
            iconst_0
            goto 3
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.Object
      StackMap stack: org.jruby.runtime.ThreadContext
         2: iconst_1
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject java.lang.Object
      StackMap stack: org.jruby.runtime.ThreadContext int
         3: invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyBoolean;
            areturn
        end local 2 // java.lang.Object ref
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        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     self  Lorg/jruby/runtime/builtin/IRubyObject;
            1    4     2      ref  Ljava/lang/Object;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"reference_required?"}, module = true)
    MethodParameters:
         Name  Flags
      context  
      self     

  public static org.jruby.runtime.builtin.IRubyObject reference_required(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=5, locals=3, args_size=3
        start local 0 // org.jruby.runtime.ThreadContext context
        start local 1 // org.jruby.runtime.builtin.IRubyObject self
        start local 2 // org.jruby.runtime.builtin.IRubyObject[] args
         0: .line 73
            aload 1 /* self */
            invokestatic org.jruby.ext.ffi.DataConverter.module:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyModule;
            ldc "reference_required"
            aload 0 /* context */
            aload 2 /* args */
            arraylength
            iconst_1
            if_icmplt 1
            aload 2 /* args */
            iconst_0
            aaload
            invokeinterface org.jruby.runtime.builtin.IRubyObject.isTrue:()Z
            ifne 1
            iconst_0
            goto 2
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.runtime.ThreadContext
         1: iconst_1
      StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject[]
      StackMap stack: org.jruby.RubyModule java.lang.String org.jruby.runtime.ThreadContext int
         2: invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyBoolean;
            invokevirtual org.jruby.RubyModule.setInternalVariable:(Ljava/lang/String;Ljava/lang/Object;)V
         3: .line 74
            aload 1 /* self */
            areturn
        end local 2 // org.jruby.runtime.builtin.IRubyObject[] args
        end local 1 // org.jruby.runtime.builtin.IRubyObject self
        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     self  Lorg/jruby/runtime/builtin/IRubyObject;
            0    4     2     args  [Lorg/jruby/runtime/builtin/IRubyObject;
    RuntimeVisibleAnnotations: 
      org.jruby.anno.JRubyMethod(name = {"reference_required"}, module = true, optional = 1)
    MethodParameters:
         Name  Flags
      context  
      self     
      args     
}
SourceFile: "DataConverter.java"