public class org.jruby.javasupport.JavaObject extends org.jruby.RubyObject
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.javasupport.JavaObject
super_class: org.jruby.RubyObject
{
private static final java.lang.Object NULL_LOCK;
descriptor: Ljava/lang/Object;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private final org.jruby.runtime.ivars.VariableAccessor objectAccessor;
descriptor: Lorg/jruby/runtime/ivars/VariableAccessor;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final org.jruby.runtime.ObjectAllocator JAVA_OBJECT_ALLOCATOR;
descriptor: Lorg/jruby/runtime/ObjectAllocator;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putstatic org.jruby.javasupport.JavaObject.NULL_LOCK:Ljava/lang/Object;
1: new org.jruby.javasupport.JavaObject$1
dup
invokespecial org.jruby.javasupport.JavaObject$1.<init>:()V
putstatic org.jruby.javasupport.JavaObject.JAVA_OBJECT_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
2: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(org.jruby.Ruby, org.jruby.RubyClass, java.lang.Object);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
aload 2
ldc "__wrap_struct__"
invokevirtual org.jruby.RubyClass.getVariableAccessorForWrite:(Ljava/lang/String;)Lorg/jruby/runtime/ivars/VariableAccessor;
putfield org.jruby.javasupport.JavaObject.objectAccessor:Lorg/jruby/runtime/ivars/VariableAccessor;
2: aload 0
aload 3
invokevirtual org.jruby.javasupport.JavaObject.dataWrapStruct:(Ljava/lang/Object;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/javasupport/JavaObject;
0 4 1 runtime Lorg/jruby/Ruby;
0 4 2 rubyClass Lorg/jruby/RubyClass;
0 4 3 value Ljava/lang/Object;
MethodParameters:
Name Flags
runtime
rubyClass
value
public final java.lang.Object dataGetStruct();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.javasupport.JavaObject.objectAccessor:Lorg/jruby/runtime/ivars/VariableAccessor;
aload 0
invokevirtual org.jruby.runtime.ivars.VariableAccessor.get:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
public final void dataWrapStruct(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.javasupport.JavaObject.objectAccessor:Lorg/jruby/runtime/ivars/VariableAccessor;
aload 0
aload 1
invokevirtual org.jruby.runtime.ivars.VariableAccessor.set:(Ljava/lang/Object;Ljava/lang/Object;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/javasupport/JavaObject;
0 2 1 object Ljava/lang/Object;
MethodParameters:
Name Flags
object
protected void <init>(org.jruby.Ruby, java.lang.Object);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/Object;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 1
invokevirtual org.jruby.Ruby.getJavaSupport:()Lorg/jruby/javasupport/JavaSupport;
invokevirtual org.jruby.javasupport.JavaSupport.getJavaObjectClass:()Lorg/jruby/RubyClass;
aload 2
invokespecial org.jruby.javasupport.JavaObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/javasupport/JavaObject;
0 2 1 runtime Lorg/jruby/Ruby;
0 2 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
runtime
value
public static org.jruby.javasupport.JavaObject wrap(org.jruby.Ruby, java.lang.Object);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/javasupport/JavaObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 5
1: aload 1
instanceof java.lang.Class
ifeq 3
2: aload 0
aload 1
checkcast java.lang.Class
invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
areturn
3: StackMap locals:
StackMap stack:
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isArray:()Z
ifeq 5
4: new org.jruby.javasupport.JavaArray
dup
aload 0
aload 1
invokespecial org.jruby.javasupport.JavaArray.<init>:(Lorg/jruby/Ruby;Ljava/lang/Object;)V
areturn
5: StackMap locals:
StackMap stack:
new org.jruby.javasupport.JavaObject
dup
aload 0
aload 1
invokespecial org.jruby.javasupport.JavaObject.<init>:(Lorg/jruby/Ruby;Ljava/lang/Object;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 runtime Lorg/jruby/Ruby;
0 6 1 value Ljava/lang/Object;
MethodParameters:
Name Flags
runtime final
value final
public static org.jruby.runtime.builtin.IRubyObject wrap(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=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic org.jruby.javasupport.JavaObject.NEVER:Lorg/jruby/runtime/builtin/IRubyObject;
invokestatic org.jruby.javasupport.JavaObject.unwrapObject:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 1: aload 3
getstatic org.jruby.javasupport.JavaObject.NEVER:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 2
aload 0
getfield org.jruby.runtime.ThreadContext.nil:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
2: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokestatic org.jruby.javasupport.JavaObject.wrap:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/javasupport/JavaObject;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 context Lorg/jruby/runtime/ThreadContext;
0 3 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 3 2 object Lorg/jruby/runtime/builtin/IRubyObject;
1 3 3 objectValue Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context final
self final
object final
public final java.lang.Class<?> getJavaClass();
descriptor: ()Ljava/lang/Class;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.dataGetStruct:()Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnull 2
aload 1
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: getstatic java.lang.Void.TYPE:Ljava/lang/Class;
StackMap locals:
StackMap stack: java.lang.Class
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/javasupport/JavaObject;
1 4 1 dataStruct Ljava/lang/Object;
Signature: ()Ljava/lang/Class<*>;
public final java.lang.Object getValue();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.dataGetStruct:()Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
public static org.jruby.RubyClass createJavaObjectClass(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 "JavaObject"
aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
getstatic org.jruby.javasupport.JavaObject.JAVA_OBJECT_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.RubyModule.defineClassUnder:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
astore 2
start local 2 1: aload 0
aload 2
invokestatic org.jruby.javasupport.JavaObject.registerRubyMethods:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
2: aload 2
invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
ldc "new"
invokevirtual org.jruby.RubyClass.undefineMethod:(Ljava/lang/String;)V
3: aload 2
invokevirtual org.jruby.RubyClass.getMetaClass:()Lorg/jruby/RubyClass;
ldc "allocate"
invokevirtual org.jruby.RubyClass.undefineMethod:(Ljava/lang/String;)V
4: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 runtime Lorg/jruby/Ruby;
0 5 1 javaModule Lorg/jruby/RubyModule;
1 5 2 JavaObject Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
javaModule
protected static void registerRubyMethods(org.jruby.Ruby, org.jruby.RubyClass);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
flags: (0x000c) ACC_PROTECTED, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/jruby/javasupport/JavaObject;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 runtime Lorg/jruby/Ruby;
0 2 1 JavaObject Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
JavaObject
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.jruby.runtime.builtin.IRubyObject
ifeq 3
1: aload 1
checkcast org.jruby.runtime.builtin.IRubyObject
getstatic org.jruby.javasupport.JavaObject.NEVER:Lorg/jruby/runtime/builtin/IRubyObject;
invokestatic org.jruby.javasupport.JavaObject.unwrapObject:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 2
start local 2 2: goto 4
end local 2 3: StackMap locals:
StackMap stack:
aload 1
astore 2
start local 2 4: StackMap locals: java.lang.Object
StackMap stack:
aload 2
getstatic org.jruby.javasupport.JavaObject.NEVER:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 5
iconst_0
ireturn
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.javasupport.JavaObject.getValue:()Ljava/lang/Object;
aload 2
if_acmpne 6
iconst_1
ireturn
StackMap locals:
StackMap stack:
6: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/javasupport/JavaObject;
0 7 1 other Ljava/lang/Object;
2 3 2 otherValue Ljava/lang/Object;
4 7 2 otherValue Ljava/lang/Object;
MethodParameters:
Name Flags
other final
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.dataGetStruct:()Ljava/lang/Object;
astore 1
start local 1 1: aload 1
ifnonnull 2
iconst_0
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: aload 1
invokevirtual java.lang.Object.hashCode:()I
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/javasupport/JavaObject;
1 4 1 value Ljava/lang/Object;
public org.jruby.RubyFixnum hash();
descriptor: ()Lorg/jruby/RubyFixnum;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.javasupport.JavaObject.hashCode:()I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject to_s();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.javasupport.JavaObject.dataGetStruct:()Ljava/lang/Object;
invokestatic org.jruby.javasupport.JavaObject.to_s:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public static org.jruby.runtime.builtin.IRubyObject to_s(org.jruby.Ruby, java.lang.Object);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 4
1: aload 1
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
astore 2
start local 2 2: aload 2
ifnonnull 3
aload 0
invokevirtual org.jruby.Ruby.getNil:()Lorg/jruby/runtime/builtin/IRubyObject;
areturn
3: StackMap locals: java.lang.String
StackMap stack:
aload 0
aload 2
invokestatic org.jruby.RubyString.newUnicodeString:(Lorg/jruby/Ruby;Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
end local 2 4: StackMap locals:
StackMap stack:
aload 0
invokestatic org.jruby.RubyString.newEmptyString:(Lorg/jruby/Ruby;)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 runtime Lorg/jruby/Ruby;
0 5 1 dataStruct Ljava/lang/Object;
2 4 2 stringValue Ljava/lang/String;
MethodParameters:
Name Flags
runtime
dataStruct
public org.jruby.runtime.builtin.IRubyObject op_equal(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.javasupport.JavaObject.getValue:()Ljava/lang/Object;
aload 1
invokestatic org.jruby.javasupport.JavaObject.equals:(Lorg/jruby/Ruby;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
0 1 1 other Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"==", "eql?"}, required = 1)
MethodParameters:
Name Flags
other final
public static org.jruby.RubyBoolean op_equal(org.jruby.java.proxies.JavaProxy, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/java/proxies/JavaProxy;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.java.proxies.JavaProxy.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
aload 1
invokestatic org.jruby.javasupport.JavaObject.equals:(Lorg/jruby/Ruby;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 self Lorg/jruby/java/proxies/JavaProxy;
0 1 1 other Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
self
other
private static org.jruby.RubyBoolean equals(org.jruby.Ruby, java.lang.Object, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/Ruby;Ljava/lang/Object;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic org.jruby.javasupport.JavaObject.NEVER:Lorg/jruby/runtime/builtin/IRubyObject;
invokestatic org.jruby.javasupport.JavaObject.unwrapObject:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 1: aload 3
getstatic org.jruby.javasupport.JavaObject.NEVER:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 3
2: aload 0
invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
areturn
3: StackMap locals: java.lang.Object
StackMap stack:
aload 1
ifnonnull 7
4: aload 0
aload 3
ifnonnull 5
iconst_1
goto 6
StackMap locals:
StackMap stack: org.jruby.Ruby
5: iconst_0
StackMap locals: org.jruby.Ruby java.lang.Object org.jruby.runtime.builtin.IRubyObject java.lang.Object
StackMap stack: org.jruby.Ruby int
6: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
7: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 3
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 runtime Lorg/jruby/Ruby;
0 8 1 thisValue Ljava/lang/Object;
0 8 2 other Lorg/jruby/runtime/builtin/IRubyObject;
1 8 3 otherValue Ljava/lang/Object;
MethodParameters:
Name Flags
runtime final
thisValue final
other final
public org.jruby.runtime.builtin.IRubyObject same(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getRuntime:()Lorg/jruby/Ruby;
astore 2
start local 2 1: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getValue:()Ljava/lang/Object;
astore 3
start local 3 2: aload 1
getstatic org.jruby.javasupport.JavaObject.NEVER:Lorg/jruby/runtime/builtin/IRubyObject;
invokestatic org.jruby.javasupport.JavaObject.unwrapObject:(Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Object;)Ljava/lang/Object;
astore 4
start local 4 3: aload 4
getstatic org.jruby.javasupport.JavaObject.NEVER:Lorg/jruby/runtime/builtin/IRubyObject;
if_acmpne 5
4: aload 2
invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
areturn
5: StackMap locals: org.jruby.Ruby java.lang.Object java.lang.Object
StackMap stack:
aload 1
instanceof org.jruby.javasupport.JavaObject
ifne 6
aload 2
invokevirtual org.jruby.Ruby.getFalse:()Lorg/jruby/RubyBoolean;
areturn
6: StackMap locals:
StackMap stack:
aload 2
aload 3
aload 4
if_acmpne 7
iconst_1
goto 8
StackMap locals:
StackMap stack: org.jruby.Ruby
7: iconst_0
StackMap locals: org.jruby.javasupport.JavaObject org.jruby.runtime.builtin.IRubyObject org.jruby.Ruby java.lang.Object java.lang.Object
StackMap stack: org.jruby.Ruby int
8: invokevirtual org.jruby.Ruby.newBoolean:(Z)Lorg/jruby/RubyBoolean;
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/javasupport/JavaObject;
0 9 1 other Lorg/jruby/runtime/builtin/IRubyObject;
1 9 2 runtime Lorg/jruby/Ruby;
2 9 3 thisValue Ljava/lang/Object;
3 9 4 otherValue Ljava/lang/Object;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"equal?"}, required = 1)
MethodParameters:
Name Flags
other final
private static java.lang.Object unwrapObject(org.jruby.runtime.builtin.IRubyObject, java.lang.Object);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
instanceof org.jruby.javasupport.JavaObject
ifeq 2
1: aload 0
checkcast org.jruby.javasupport.JavaObject
invokevirtual org.jruby.javasupport.JavaObject.getValue:()Ljava/lang/Object;
areturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof org.jruby.java.proxies.JavaProxy
ifeq 4
3: aload 0
checkcast org.jruby.java.proxies.JavaProxy
invokevirtual org.jruby.java.proxies.JavaProxy.getObject:()Ljava/lang/Object;
areturn
4: StackMap locals:
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 wrapped Lorg/jruby/runtime/builtin/IRubyObject;
0 5 1 defaultValue Ljava/lang/Object;
MethodParameters:
Name Flags
wrapped final
defaultValue final
public org.jruby.RubyString java_type();
descriptor: ()Lorg/jruby/RubyString;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.javasupport.JavaObject.getJavaClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newString:(Ljava/lang/String;)Lorg/jruby/RubyString;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.javasupport.JavaClass java_class();
descriptor: ()Lorg/jruby/javasupport/JavaClass;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getRuntime:()Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.javasupport.JavaObject.getJavaClass:()Ljava/lang/Class;
invokestatic org.jruby.javasupport.JavaClass.get:(Lorg/jruby/Ruby;Ljava/lang/Class;)Lorg/jruby/javasupport/JavaClass;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.RubyFixnum length();
descriptor: ()Lorg/jruby/RubyFixnum;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getRuntime:()Lorg/jruby/Ruby;
ldc "not a java array"
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject is_java_proxy();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getRuntime:()Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getTrue:()Lorg/jruby/RubyBoolean;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/JavaObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"java_proxy?"})
public final org.jruby.runtime.builtin.IRubyObject ruby_synchronized(org.jruby.runtime.ThreadContext, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getValue:()Ljava/lang/Object;
astore 3
start local 3 1: aload 3
ifnull 2
aload 3
goto 3
StackMap locals: java.lang.Object
StackMap stack:
2: getstatic org.jruby.javasupport.JavaObject.NULL_LOCK:Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
3: dup
astore 4
monitorenter
4: aload 2
aload 1
aconst_null
invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
aload 4
monitorexit
5: areturn
6: StackMap locals: org.jruby.javasupport.JavaObject org.jruby.runtime.ThreadContext org.jruby.runtime.Block java.lang.Object java.lang.Object
StackMap stack: java.lang.Throwable
aload 4
monitorexit
7: athrow
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/javasupport/JavaObject;
0 8 1 context Lorg/jruby/runtime/ThreadContext;
0 8 2 block Lorg/jruby/runtime/Block;
1 8 3 lock Ljava/lang/Object;
Exception table:
from to target type
4 5 6 any
6 7 6 any
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"synchronized"})
MethodParameters:
Name Flags
context
block
public static org.jruby.runtime.builtin.IRubyObject ruby_synchronized(org.jruby.runtime.ThreadContext, java.lang.Object, org.jruby.runtime.Block);
descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/lang/Object;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnull 1
aload 1
goto 2
StackMap locals:
StackMap stack:
1: getstatic org.jruby.javasupport.JavaObject.NULL_LOCK:Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
2: dup
astore 3
monitorenter
3: aload 2
aload 0
aconst_null
invokevirtual org.jruby.runtime.Block.yield:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
aload 3
monitorexit
4: areturn
5: StackMap locals: org.jruby.runtime.ThreadContext java.lang.Object org.jruby.runtime.Block java.lang.Object
StackMap stack: java.lang.Throwable
aload 3
monitorexit
6: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 context Lorg/jruby/runtime/ThreadContext;
0 7 1 lock Ljava/lang/Object;
0 7 2 block Lorg/jruby/runtime/Block;
Exception table:
from to target type
3 4 5 any
5 6 5 any
MethodParameters:
Name Flags
context
lock final
block
public org.jruby.runtime.builtin.IRubyObject marshal_dump(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: ldc Ljava/io/Serializable;
aload 0
invokevirtual org.jruby.javasupport.JavaObject.getJavaClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 7
1: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 2
start local 2 2: new java.io.ObjectOutputStream
dup
aload 2
invokespecial java.io.ObjectOutputStream.<init>:(Ljava/io/OutputStream;)V
aload 0
invokevirtual org.jruby.javasupport.JavaObject.getValue:()Ljava/lang/Object;
invokevirtual java.io.ObjectOutputStream.writeObject:(Ljava/lang/Object;)V
3: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new org.jruby.util.ByteList
dup
aload 2
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
iconst_0
invokespecial org.jruby.util.ByteList.<init>:([BZ)V
invokevirtual org.jruby.Ruby.newString:(Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
4: areturn
end local 2 5: StackMap locals:
StackMap stack: java.io.IOException
astore 2
start local 2 6: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 2 7: StackMap locals:
StackMap stack:
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "no marshal_dump is defined for class "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual org.jruby.javasupport.JavaObject.getJavaClass:()Ljava/lang/Class;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newTypeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/javasupport/JavaObject;
0 8 1 context Lorg/jruby/runtime/ThreadContext;
2 5 2 baos Ljava/io/ByteArrayOutputStream;
6 7 2 ex Ljava/io/IOException;
Exception table:
from to target type
1 4 5 Class java.io.IOException
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.runtime.builtin.IRubyObject marshal_load(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
astore 3
start local 3 1: new java.io.ByteArrayInputStream
dup
aload 3
invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
aload 3
invokevirtual org.jruby.util.ByteList.getBegin:()I
aload 3
invokevirtual org.jruby.util.ByteList.getRealSize:()I
invokespecial java.io.ByteArrayInputStream.<init>:([BII)V
astore 4
start local 4 2: aload 0
new org.jruby.util.JRubyObjectInputStream
dup
aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 4
invokespecial org.jruby.util.JRubyObjectInputStream.<init>:(Lorg/jruby/Ruby;Ljava/io/InputStream;)V
invokevirtual org.jruby.util.JRubyObjectInputStream.readObject:()Ljava/lang/Object;
invokevirtual org.jruby.javasupport.JavaObject.dataWrapStruct:(Ljava/lang/Object;)V
3: aload 0
4: areturn
end local 4 end local 3 5: StackMap locals:
StackMap stack: java.io.IOException
astore 3
start local 3 6: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 3
invokevirtual org.jruby.Ruby.newIOErrorFromException:(Ljava/io/IOException;)Lorg/jruby/exceptions/RaiseException;
athrow
end local 3 7: StackMap locals:
StackMap stack: java.lang.ClassNotFoundException
astore 3
start local 3 8: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "Class not found unmarshaling Java type: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.ClassNotFoundException.getLocalizedMessage:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newTypeError:(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 9 0 this Lorg/jruby/javasupport/JavaObject;
0 9 1 context Lorg/jruby/runtime/ThreadContext;
0 9 2 str Lorg/jruby/runtime/builtin/IRubyObject;
1 5 3 byteList Lorg/jruby/util/ByteList;
2 5 4 bais Ljava/io/ByteArrayInputStream;
6 7 3 ex Ljava/io/IOException;
8 9 3 ex Ljava/lang/ClassNotFoundException;
Exception table:
from to target type
0 4 5 Class java.io.IOException
0 4 7 Class java.lang.ClassNotFoundException
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
str
public <T> T toJava(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.jruby.javasupport.JavaObject.getValue:()Ljava/lang/Object;
astore 2
start local 2 1: aload 2
ifnonnull 2
aconst_null
areturn
2: StackMap locals: java.lang.Object
StackMap stack:
aload 1
aload 2
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.isAssignableFrom:(Ljava/lang/Class;)Z
ifeq 4
3: aload 1
aload 2
invokevirtual java.lang.Class.cast:(Ljava/lang/Object;)Ljava/lang/Object;
areturn
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokespecial org.jruby.RubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/javasupport/JavaObject;
0 5 1 target Ljava/lang/Class<TT;>;
1 5 2 value Ljava/lang/Object;
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
target
}
SourceFile: "JavaObject.java"
NestMembers:
org.jruby.javasupport.JavaObject$1
InnerClasses:
org.jruby.javasupport.JavaObject$1
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyClass(name = {"Java::JavaObject"})