final class org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler implements org.jruby.javasupport.proxy.JavaProxyInvocationHandler
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler
super_class: java.lang.Object
{
private final org.jruby.Ruby runtime;
descriptor: Lorg/jruby/Ruby;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.runtime.builtin.IRubyObject self;
descriptor: Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
void <init>(org.jruby.Ruby, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/runtime/builtin/IRubyObject;)V
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.runtime:Lorg/jruby/Ruby;
aload 0
aload 2
putfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.self:Lorg/jruby/runtime/builtin/IRubyObject;
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/javasupport/proxy/JavaProxyConstructor$MethodInvocationHandler;
0 3 1 runtime Lorg/jruby/Ruby;
0 3 2 self Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
runtime final
self final
public org.jruby.runtime.builtin.IRubyObject getOrig();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.self:Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/proxy/JavaProxyConstructor$MethodInvocationHandler;
public final org.jruby.Ruby getRuntime();
descriptor: ()Lorg/jruby/Ruby;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.runtime:Lorg/jruby/Ruby;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/javasupport/proxy/JavaProxyConstructor$MethodInvocationHandler;
public java.lang.Object invoke(java.lang.Object, org.jruby.javasupport.proxy.JavaProxyMethod, java.lang.Object[]);
descriptor: (Ljava/lang/Object;Lorg/jruby/javasupport/proxy/JavaProxyMethod;[Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.self:Lorg/jruby/runtime/builtin/IRubyObject;
invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
astore 4
start local 4 1: aload 2
invokeinterface org.jruby.javasupport.proxy.JavaProxyMethod.getName:()Ljava/lang/String;
astore 5
start local 5 2: aload 4
aload 5
invokevirtual org.jruby.RubyClass.searchMethod:(Ljava/lang/String;)Lorg/jruby/internal/runtime/methods/DynamicMethod;
astore 6
start local 6 3: aload 0
aload 6
aload 2
aload 4
aload 5
aload 3
invokevirtual org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.invokeRuby:(Lorg/jruby/internal/runtime/methods/DynamicMethod;Lorg/jruby/javasupport/proxy/JavaProxyMethod;Lorg/jruby/RubyClass;Ljava/lang/String;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 7
start local 7 4: aload 2
invokeinterface org.jruby.javasupport.proxy.JavaProxyMethod.getReturnType:()Ljava/lang/Class;
astore 8
start local 8 5: aload 8
getstatic java.lang.Void.TYPE:Ljava/lang/Class;
if_acmpne 6
aconst_null
goto 7
StackMap locals: org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler java.lang.Object org.jruby.javasupport.proxy.JavaProxyMethod java.lang.Object[] org.jruby.RubyClass java.lang.String org.jruby.internal.runtime.methods.DynamicMethod org.jruby.runtime.builtin.IRubyObject java.lang.Class
StackMap stack:
6: aload 7
aload 8
invokeinterface org.jruby.runtime.builtin.IRubyObject.toJava:(Ljava/lang/Class;)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
7: 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 8 0 this Lorg/jruby/javasupport/proxy/JavaProxyConstructor$MethodInvocationHandler;
0 8 1 proxy Ljava/lang/Object;
0 8 2 proxyMethod Lorg/jruby/javasupport/proxy/JavaProxyMethod;
0 8 3 nargs [Ljava/lang/Object;
1 8 4 metaClass Lorg/jruby/RubyClass;
2 8 5 name Ljava/lang/String;
3 8 6 method Lorg/jruby/internal/runtime/methods/DynamicMethod;
4 8 7 result Lorg/jruby/runtime/builtin/IRubyObject;
5 8 8 returnType Ljava/lang/Class<*>;
Exceptions:
throws java.lang.Throwable
MethodParameters:
Name Flags
proxy
proxyMethod
nargs
private org.jruby.runtime.builtin.IRubyObject invokeRuby(org.jruby.internal.runtime.methods.DynamicMethod, org.jruby.javasupport.proxy.JavaProxyMethod, org.jruby.RubyClass, java.lang.String, java.lang.Object[]);
descriptor: (Lorg/jruby/internal/runtime/methods/DynamicMethod;Lorg/jruby/javasupport/proxy/JavaProxyMethod;Lorg/jruby/RubyClass;Ljava/lang/String;[Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 5
arraylength
anewarray org.jruby.runtime.builtin.IRubyObject
astore 6
start local 6 1: aload 5
arraylength
istore 7
start local 7 2: goto 4
3: StackMap locals: org.jruby.runtime.builtin.IRubyObject[] int
StackMap stack:
aload 6
iload 7
aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.runtime:Lorg/jruby/Ruby;
aload 5
iload 7
aaload
invokestatic org.jruby.javasupport.JavaUtil.convertJavaToUsableRubyObject:(Lorg/jruby/Ruby;Ljava/lang/Object;)Lorg/jruby/runtime/builtin/IRubyObject;
aastore
4: StackMap locals:
StackMap stack:
iinc 7 -1
iload 7
ifge 3
end local 7 5: aload 1
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getArity:()Lorg/jruby/runtime/Arity;
invokevirtual org.jruby.runtime.Arity.getValue:()I
istore 7
start local 7 6: iload 7
iflt 7
iload 7
aload 6
arraylength
if_icmpne 9
7: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
astore 8
start local 8 8: aload 1
aload 8
aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.self:Lorg/jruby/runtime/builtin/IRubyObject;
aload 3
aload 4
aload 6
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.call:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 8 9: StackMap locals:
StackMap stack:
aload 2
invokeinterface org.jruby.javasupport.proxy.JavaProxyMethod.hasSuperImplementation:()Z
ifeq 13
10: aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.runtime:Lorg/jruby/Ruby;
invokevirtual org.jruby.Ruby.getCurrentContext:()Lorg/jruby/runtime/ThreadContext;
astore 8
start local 8 11: aload 3
invokevirtual org.jruby.RubyClass.getSuperClass:()Lorg/jruby/RubyClass;
astore 9
start local 9 12: aload 8
aload 9
aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.self:Lorg/jruby/runtime/builtin/IRubyObject;
aload 4
aload 6
getstatic org.jruby.runtime.Block.NULL_BLOCK:Lorg/jruby/runtime/Block;
invokestatic org.jruby.runtime.Helpers.invokeAs:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyClass;Lorg/jruby/runtime/builtin/IRubyObject;Ljava/lang/String;[Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/runtime/Block;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 9 end local 8 13: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler.runtime:Lorg/jruby/Ruby;
aload 6
arraylength
iload 7
invokevirtual org.jruby.Ruby.newArgumentError:(II)Lorg/jruby/exceptions/RaiseException;
athrow
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 14 0 this Lorg/jruby/javasupport/proxy/JavaProxyConstructor$MethodInvocationHandler;
0 14 1 method Lorg/jruby/internal/runtime/methods/DynamicMethod;
0 14 2 proxyMethod Lorg/jruby/javasupport/proxy/JavaProxyMethod;
0 14 3 metaClass Lorg/jruby/RubyClass;
0 14 4 name Ljava/lang/String;
0 14 5 nargs [Ljava/lang/Object;
1 14 6 newArgs [Lorg/jruby/runtime/builtin/IRubyObject;
2 5 7 i I
6 14 7 arity I
8 9 8 context Lorg/jruby/runtime/ThreadContext;
11 13 8 context Lorg/jruby/runtime/ThreadContext;
12 13 9 superClass Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
method final
proxyMethod final
metaClass final
name final
nargs final
}
SourceFile: "JavaProxyConstructor.java"
NestHost: org.jruby.javasupport.proxy.JavaProxyConstructor
InnerClasses:
private final MethodInvocationHandler = org.jruby.javasupport.proxy.JavaProxyConstructor$MethodInvocationHandler of org.jruby.javasupport.proxy.JavaProxyConstructor