public final class org.jruby.ext.ffi.Enum extends org.jruby.RubyObject
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.jruby.ext.ffi.Enum
super_class: org.jruby.RubyObject
{
private org.jruby.runtime.builtin.IRubyObject nativeType;
descriptor: Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
private final org.jruby.RubyHash kv_map;
descriptor: Lorg/jruby/RubyHash;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile org.jruby.runtime.builtin.IRubyObject tag;
descriptor: Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.util.Map<org.jruby.RubySymbol, org.jruby.RubyInteger> symbolToValue;
descriptor: Ljava/util/Map;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/Map<Lorg/jruby/RubySymbol;Lorg/jruby/RubyInteger;>;
private volatile java.util.concurrent.ConcurrentHashMap<java.lang.Long, org.jruby.RubySymbol> valueToSymbol;
descriptor: Ljava/util/concurrent/ConcurrentHashMap;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
Signature: Ljava/util/concurrent/ConcurrentHashMap<Ljava/lang/Long;Lorg/jruby/RubySymbol;>;
public static org.jruby.RubyClass createEnumClass(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 start local 1 0: aload 1
ldc "Enum"
aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
1: getstatic org.jruby.ext.ffi.Enum$Allocator.INSTANCE:Lorg/jruby/runtime/ObjectAllocator;
2: invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 2
start local 2 3: aload 2
ldc Lorg/jruby/ext/ffi/Enum;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
4: aload 2
ldc Lorg/jruby/ext/ffi/Enum;
invokevirtual org.jruby.RubyClass.defineAnnotatedConstants:(Ljava/lang/Class;)V
5: aload 2
aload 1
ldc "DataConverter"
invokevirtual org.jruby.RubyModule.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual org.jruby.RubyClass.includeModule:(Lorg/jruby/runtime/builtin/IRubyObject;)V
6: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 runtime Lorg/jruby/Ruby;
0 7 1 ffiModule Lorg/jruby/RubyModule;
3 7 2 enumClass Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
ffiModule
private void <init>(org.jruby.Ruby, org.jruby.RubyClass);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
putfield org.jruby.ext.ffi.Enum.symbolToValue:Ljava/util/Map;
2: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
putfield org.jruby.ext.ffi.Enum.valueToSymbol:Ljava/util/concurrent/ConcurrentHashMap;
3: aload 0
aload 1
invokestatic org.jruby.RubyHash.newHash:(Lorg/jruby/Ruby;)Lorg/jruby/RubyHash;
putfield org.jruby.ext.ffi.Enum.kv_map:Lorg/jruby/RubyHash;
4: aload 0
aload 1
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
putfield org.jruby.ext.ffi.Enum.tag:Lorg/jruby/runtime/builtin/IRubyObject;
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/jruby/ext/ffi/Enum;
0 6 1 runtime Lorg/jruby/Ruby;
0 6 2 klass Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
klass
public final org.jruby.runtime.builtin.IRubyObject initialize(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=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aconst_null
aconst_null
aload 2
invokevirtual org.jruby.ext.ffi.Enum.initialize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/ffi/Enum;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 arg Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
MethodParameters:
Name Flags
context
arg
public final org.jruby.runtime.builtin.IRubyObject initialize(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: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof org.jruby.ext.ffi.Type
ifeq 2
1: aload 0
aload 1
aload 2
aload 3
aconst_null
invokevirtual org.jruby.ext.ffi.Enum.initialize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals:
StackMap stack:
aload 3
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 4
3: aload 0
aload 1
aconst_null
aload 2
aconst_null
invokevirtual org.jruby.ext.ffi.Enum.initialize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
aconst_null
aload 2
aload 3
invokevirtual org.jruby.ext.ffi.Enum.initialize:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ext/ffi/Enum;
0 5 1 context Lorg/jruby/runtime/ThreadContext;
0 5 2 arg0 Lorg/jruby/runtime/builtin/IRubyObject;
0 5 3 arg1 Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
MethodParameters:
Name Flags
context
arg0
arg1
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);
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: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=5, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 2
instanceof org.jruby.ext.ffi.Type
ifeq 3
1: aload 0
aload 2
putfield org.jruby.ext.ffi.Enum.nativeType:Lorg/jruby/runtime/builtin/IRubyObject;
2: goto 6
3: StackMap locals:
StackMap stack:
aload 2
ifnull 5
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 5
4: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "FFI"
invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
ldc "Type"
invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
5: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
ldc "FFI"
invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
ldc "Type"
invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
ldc "INT"
invokevirtual org.jruby.RubyClass.getConstant:(Ljava/lang/String;)Lorg/jruby/runtime/builtin/IRubyObject;
putfield org.jruby.ext.ffi.Enum.nativeType:Lorg/jruby/runtime/builtin/IRubyObject;
6: StackMap locals:
StackMap stack:
aload 4
ifnull 8
aload 4
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifne 8
aload 4
instanceof org.jruby.RubySymbol
ifne 8
7: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 4
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getSymbol:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
8: StackMap locals:
StackMap stack:
aload 0
aload 4
putfield org.jruby.ext.ffi.Enum.tag:Lorg/jruby/runtime/builtin/IRubyObject;
9: aload 3
instanceof org.jruby.RubyArray
ifne 11
10: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getArray:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
11: StackMap locals:
StackMap stack:
aload 3
checkcast org.jruby.RubyArray
astore 5
start local 5 12: new java.util.IdentityHashMap
dup
invokespecial java.util.IdentityHashMap.<init>:()V
astore 6
start local 6 13: aconst_null
astore 7
start local 7 14: lconst_0
lstore 8
start local 8 15: iconst_0
istore 10
start local 10 16: goto 33
17: StackMap locals: org.jruby.ext.ffi.Enum org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyArray java.util.Map org.jruby.runtime.builtin.IRubyObject long int
StackMap stack:
aload 5
iload 10
invokevirtual org.jruby.RubyArray.entry:(I)Lorg/jruby/runtime/builtin/IRubyObject;
astore 11
start local 11 18: aload 11
instanceof org.jruby.RubySymbol
ifeq 23
19: aload 6
aload 11
checkcast org.jruby.RubySymbol
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
lload 8
invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
20: aload 11
astore 7
21: lload 8
lconst_1
ladd
lstore 8
22: goto 32
StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
23: aload 11
instanceof org.jruby.RubyInteger
ifeq 31
24: aload 7
ifnonnull 28
25: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "invalid enum sequence - no symbol for value "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
26: aload 11
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
28: StackMap locals:
StackMap stack:
aload 6
aload 7
checkcast org.jruby.RubySymbol
aload 11
checkcast org.jruby.RubyFixnum
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
29: aload 11
checkcast org.jruby.RubyInteger
invokevirtual org.jruby.RubyInteger.getLongValue:()J
lconst_1
ladd
lstore 8
30: goto 32
31: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 11
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getSymbol:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.Ruby.newTypeError:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyClass;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 11 32: StackMap locals:
StackMap stack:
iinc 10 1
StackMap locals:
StackMap stack:
33: iload 10
aload 5
invokevirtual org.jruby.RubyArray.size:()I
if_icmplt 17
end local 10 34: aload 0
new java.util.IdentityHashMap
dup
aload 6
invokespecial java.util.IdentityHashMap.<init>:(Ljava/util/Map;)V
putfield org.jruby.ext.ffi.Enum.symbolToValue:Ljava/util/Map;
35: aload 0
new java.util.concurrent.ConcurrentHashMap
dup
aload 0
getfield org.jruby.ext.ffi.Enum.symbolToValue:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:(I)V
putfield org.jruby.ext.ffi.Enum.valueToSymbol:Ljava/util/concurrent/ConcurrentHashMap;
36: aload 0
getfield org.jruby.ext.ffi.Enum.symbolToValue:Ljava/util/Map;
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 11
goto 40
StackMap locals: org.jruby.ext.ffi.Enum org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.RubyArray java.util.Map org.jruby.runtime.builtin.IRubyObject long top java.util.Iterator
StackMap stack:
37: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 10
start local 10 38: aload 0
getfield org.jruby.ext.ffi.Enum.kv_map:Lorg/jruby/RubyHash;
aload 10
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.jruby.runtime.builtin.IRubyObject
invokevirtual org.jruby.RubyHash.fastASet:(Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/builtin/IRubyObject;)V
39: aload 0
getfield org.jruby.ext.ffi.Enum.valueToSymbol:Ljava/util/concurrent/ConcurrentHashMap;
aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast org.jruby.RubyInteger
invokevirtual org.jruby.RubyInteger.getLongValue:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 10
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast org.jruby.RubySymbol
invokevirtual java.util.concurrent.ConcurrentHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 10 40: StackMap locals:
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 37
41: aload 0
areturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/jruby/ext/ffi/Enum;
0 42 1 context Lorg/jruby/runtime/ThreadContext;
0 42 2 type Lorg/jruby/runtime/builtin/IRubyObject;
0 42 3 values Lorg/jruby/runtime/builtin/IRubyObject;
0 42 4 tag Lorg/jruby/runtime/builtin/IRubyObject;
12 42 5 ary Lorg/jruby/RubyArray;
13 42 6 s2v Ljava/util/Map<Lorg/jruby/RubySymbol;Lorg/jruby/RubyInteger;>;
14 42 7 prevConstant Lorg/jruby/runtime/builtin/IRubyObject;
15 42 8 nextValue J
16 34 10 i I
18 32 11 v Lorg/jruby/runtime/builtin/IRubyObject;
38 40 10 e Ljava/util/Map$Entry<Lorg/jruby/RubySymbol;Lorg/jruby/RubyInteger;>;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"initialize"}, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
MethodParameters:
Name Flags
context
type
values
tag
public final org.jruby.runtime.builtin.IRubyObject find(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=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.jruby.RubySymbol
ifeq 5
1: aload 0
getfield org.jruby.ext.ffi.Enum.kv_map:Lorg/jruby/RubyHash;
aload 2
invokevirtual org.jruby.RubyHash.fastARef:(Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 3
start local 3 2: aload 3
ifnull 3
aload 3
goto 4
StackMap locals: org.jruby.runtime.builtin.IRubyObject
StackMap stack:
3: aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
4: areturn
end local 3 5: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubyInteger
ifeq 10
6: aload 0
getfield org.jruby.ext.ffi.Enum.valueToSymbol:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
checkcast org.jruby.RubyInteger
invokevirtual org.jruby.RubyInteger.getLongValue:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.RubySymbol
astore 3
start local 3 7: aload 3
ifnull 8
aload 3
goto 9
StackMap locals: org.jruby.RubySymbol
StackMap stack:
8: aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
StackMap locals:
StackMap stack: org.jruby.runtime.builtin.IRubyObject
9: areturn
end local 3 10: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/jruby/ext/ffi/Enum;
0 11 1 context Lorg/jruby/runtime/ThreadContext;
0 11 2 query Lorg/jruby/runtime/builtin/IRubyObject;
2 5 3 value Lorg/jruby/runtime/builtin/IRubyObject;
7 10 3 symbol Lorg/jruby/RubySymbol;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"[]", "find"})
MethodParameters:
Name Flags
context
query
public final org.jruby.runtime.builtin.IRubyObject symbol_map(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 start local 1 0: aload 0
getfield org.jruby.ext.ffi.Enum.kv_map:Lorg/jruby/RubyHash;
aload 1
invokevirtual org.jruby.RubyHash.dup:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/ffi/Enum;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"symbol_map", "to_h", "to_hash"})
MethodParameters:
Name Flags
context
public final org.jruby.runtime.builtin.IRubyObject symbols(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 start local 1 0: aload 0
getfield org.jruby.ext.ffi.Enum.kv_map:Lorg/jruby/RubyHash;
aload 1
invokevirtual org.jruby.RubyHash.keys:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyArray;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/ffi/Enum;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"symbols"})
MethodParameters:
Name Flags
context
public final org.jruby.runtime.builtin.IRubyObject tag(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ext.ffi.Enum.tag:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/ffi/Enum;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"tag"})
MethodParameters:
Name Flags
context
public final org.jruby.runtime.builtin.IRubyObject native_type(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ext.ffi.Enum.nativeType:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/ffi/Enum;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"native_type"})
MethodParameters:
Name Flags
context
public final org.jruby.runtime.builtin.IRubyObject to_native(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: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof org.jruby.RubyFixnum
ifeq 2
1: aload 2
areturn
2: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubySymbol
ifeq 5
aload 0
getfield org.jruby.ext.ffi.Enum.symbolToValue:Ljava/util/Map;
aload 2
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.RubyInteger
dup
astore 4
start local 4 3: ifnull 5
4: aload 4
areturn
end local 4 5: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubyInteger
ifeq 7
6: aload 2
areturn
7: StackMap locals:
StackMap stack:
aload 2
ldc "to_int"
invokeinterface org.jruby.runtime.builtin.IRubyObject.respondsTo:(Ljava/lang/String;)Z
ifeq 9
8: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
areturn
9: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.getRuntime:()Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "invalid enum value, "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/jruby/ext/ffi/Enum;
0 10 1 context Lorg/jruby/runtime/ThreadContext;
0 10 2 name Lorg/jruby/runtime/builtin/IRubyObject;
0 10 3 ctx Lorg/jruby/runtime/builtin/IRubyObject;
3 5 4 value Lorg/jruby/RubyInteger;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"to_native"})
MethodParameters:
Name Flags
context
name
ctx
public final org.jruby.runtime.builtin.IRubyObject from_native(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: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 2
instanceof org.jruby.RubyInteger
ifeq 3
aload 0
getfield org.jruby.ext.ffi.Enum.valueToSymbol:Ljava/util/concurrent/ConcurrentHashMap;
aload 2
checkcast org.jruby.RubyInteger
invokevirtual org.jruby.RubyInteger.getLongValue:()J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.concurrent.ConcurrentHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.jruby.RubySymbol
dup
astore 4
start local 4 1: ifnull 3
2: aload 4
areturn
end local 4 3: StackMap locals:
StackMap stack:
aload 2
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ext/ffi/Enum;
0 4 1 context Lorg/jruby/runtime/ThreadContext;
0 4 2 value Lorg/jruby/runtime/builtin/IRubyObject;
0 4 3 ctx Lorg/jruby/runtime/builtin/IRubyObject;
1 3 4 sym Lorg/jruby/RubySymbol;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"from_native"})
MethodParameters:
Name Flags
context
value
ctx
public org.jruby.runtime.builtin.IRubyObject reference_required_p(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.fals:Lorg/jruby/RubyBoolean;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/ffi/Enum;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"reference_required?"})
MethodParameters:
Name Flags
context
}
SourceFile: "Enum.java"
NestMembers:
org.jruby.ext.ffi.Enum$Allocator
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
private final Allocator = org.jruby.ext.ffi.Enum$Allocator of org.jruby.ext.ffi.Enum
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyClass(name = {"FFI::Enum"}, parent = "Object")