public class org.jruby.RubyUnboundMethod extends org.jruby.AbstractRubyMethod
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.RubyUnboundMethod
super_class: org.jruby.AbstractRubyMethod
{
protected void <init>(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 1
invokevirtual org.jruby.Ruby.getUnboundMethod:()Lorg/jruby/RubyClass;
invokespecial org.jruby.AbstractRubyMethod.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyUnboundMethod;
0 2 1 runtime Lorg/jruby/Ruby;
MethodParameters:
Name Flags
runtime
public static org.jruby.RubyUnboundMethod newUnboundMethod(org.jruby.RubyModule, java.lang.String, org.jruby.RubyModule, java.lang.String, org.jruby.runtime.callsite.CacheEntry);
descriptor: (Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/callsite/CacheEntry;)Lorg/jruby/RubyUnboundMethod;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: new org.jruby.RubyUnboundMethod
dup
aload 0
invokevirtual org.jruby.RubyModule.getRuntime:()Lorg/jruby/Ruby;
invokespecial org.jruby.RubyUnboundMethod.<init>:(Lorg/jruby/Ruby;)V
astore 5
start local 5 1: aload 5
aload 0
putfield org.jruby.RubyUnboundMethod.implementationModule:Lorg/jruby/RubyModule;
2: aload 5
aload 1
putfield org.jruby.RubyUnboundMethod.methodName:Ljava/lang/String;
3: aload 5
aload 2
putfield org.jruby.RubyUnboundMethod.originModule:Lorg/jruby/RubyModule;
4: aload 5
aload 3
putfield org.jruby.RubyUnboundMethod.originName:Ljava/lang/String;
5: aload 5
aload 4
putfield org.jruby.RubyUnboundMethod.entry:Lorg/jruby/runtime/callsite/CacheEntry;
6: aload 5
aload 4
getfield org.jruby.runtime.callsite.CacheEntry.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
putfield org.jruby.RubyUnboundMethod.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
7: aload 5
aload 4
getfield org.jruby.runtime.callsite.CacheEntry.sourceModule:Lorg/jruby/RubyModule;
putfield org.jruby.RubyUnboundMethod.sourceModule:Lorg/jruby/RubyModule;
8: aload 5
areturn
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 9 0 implementationModule Lorg/jruby/RubyModule;
0 9 1 methodName Ljava/lang/String;
0 9 2 originModule Lorg/jruby/RubyModule;
0 9 3 originName Ljava/lang/String;
0 9 4 entry Lorg/jruby/runtime/callsite/CacheEntry;
1 9 5 newMethod Lorg/jruby/RubyUnboundMethod;
MethodParameters:
Name Flags
implementationModule
methodName
originModule
originName
entry
public static org.jruby.RubyClass defineUnboundMethodClass(org.jruby.Ruby);
descriptor: (Lorg/jruby/Ruby;)Lorg/jruby/RubyClass;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
ldc "UnboundMethod"
aload 0
invokevirtual org.jruby.Ruby.getObject:()Lorg/jruby/RubyClass;
getstatic org.jruby.runtime.ObjectAllocator.NOT_ALLOCATABLE_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
invokevirtual org.jruby.Ruby.defineClass:(Ljava/lang/String;Lorg/jruby/RubyClass;Lorg/jruby/runtime/ObjectAllocator;)Lorg/jruby/RubyClass;
1: astore 1
start local 1 2: aload 1
getstatic org.jruby.runtime.ClassIndex.UNBOUNDMETHOD:Lorg/jruby/runtime/ClassIndex;
invokevirtual org.jruby.RubyClass.setClassIndex:(Lorg/jruby/runtime/ClassIndex;)V
3: aload 1
ldc Lorg/jruby/RubyUnboundMethod;
invokevirtual org.jruby.RubyClass.setReifiedClass:(Ljava/lang/Class;)V
4: aload 1
ldc Lorg/jruby/AbstractRubyMethod;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
5: aload 1
ldc Lorg/jruby/RubyUnboundMethod;
invokevirtual org.jruby.RubyClass.defineAnnotatedMethods:(Ljava/lang/Class;)V
6: aload 1
invokevirtual org.jruby.RubyClass.getSingletonClass:()Lorg/jruby/RubyClass;
ldc "new"
invokevirtual org.jruby.RubyClass.undefineMethod:(Ljava/lang/String;)V
7: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 runtime Lorg/jruby/Ruby;
2 8 1 newClass Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
runtime
public org.jruby.RubyBoolean op_equal(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
aload 2
invokevirtual org.jruby.RubyUnboundMethod.equals:(Ljava/lang/Object;)Z
invokestatic org.jruby.RubyBoolean.newBoolean:(Lorg/jruby/runtime/ThreadContext;Z)Lorg/jruby/RubyBoolean;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyUnboundMethod;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
0 1 2 other Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"=="}, required = 1)
MethodParameters:
Name Flags
context
other
public boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof org.jruby.AbstractRubyMethod
ifne 1
iconst_0
ireturn
1: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.RubyUnboundMethod.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
instanceof org.jruby.internal.runtime.methods.ProcMethod
ifeq 3
2: aload 0
getfield org.jruby.RubyUnboundMethod.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
checkcast org.jruby.internal.runtime.methods.ProcMethod
aload 1
checkcast org.jruby.AbstractRubyMethod
invokevirtual org.jruby.AbstractRubyMethod.getMethod:()Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.ProcMethod.isSame:(Lorg/jruby/internal/runtime/methods/DynamicMethod;)Z
ireturn
3: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.AbstractRubyMethod
astore 2
start local 2 4: aload 0
getfield org.jruby.RubyUnboundMethod.originModule:Lorg/jruby/RubyModule;
aload 2
getfield org.jruby.AbstractRubyMethod.originModule:Lorg/jruby/RubyModule;
if_acmpne 7
5: aload 0
getfield org.jruby.RubyUnboundMethod.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getRealMethod:()Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getSerialNumber:()J
aload 2
getfield org.jruby.AbstractRubyMethod.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getRealMethod:()Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getSerialNumber:()J
lcmp
ifne 7
6: iconst_1
ireturn
StackMap locals: org.jruby.AbstractRubyMethod
StackMap stack:
7: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/jruby/RubyUnboundMethod;
0 8 1 other Ljava/lang/Object;
4 8 2 otherMethod Lorg/jruby/AbstractRubyMethod;
MethodParameters:
Name Flags
other
public org.jruby.RubyFixnum hash(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFixnum;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
invokevirtual org.jruby.RubyUnboundMethod.hashCode:()I
invokevirtual org.jruby.Ruby.newFixnum:(I)Lorg/jruby/RubyFixnum;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyUnboundMethod;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public int hashCode();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyUnboundMethod.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getRealMethod:()Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getSerialNumber:()J
lstore 1
start local 1 1: sipush 997
lload 1
bipush 32
lshr
l2i
lload 1
l2i
sipush 255
iand
ixor
imul
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/RubyUnboundMethod;
1 2 1 serial J
public org.jruby.RubyMethod bind(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.getMetaClass:()Lorg/jruby/RubyClass;
astore 3
start local 3 1: aload 3
aload 1
aload 0
aload 1
invokevirtual org.jruby.RubyUnboundMethod.owner:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
checkcast org.jruby.RubyModule
invokevirtual org.jruby.RubyClass.checkValidBindTargetFrom:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/RubyModule;)V
2: aload 0
getfield org.jruby.RubyUnboundMethod.implementationModule:Lorg/jruby/RubyModule;
aload 0
getfield org.jruby.RubyUnboundMethod.methodName:Ljava/lang/String;
aload 3
aload 0
getfield org.jruby.RubyUnboundMethod.originName:Ljava/lang/String;
aload 0
getfield org.jruby.RubyUnboundMethod.entry:Lorg/jruby/runtime/callsite/CacheEntry;
aload 2
invokestatic org.jruby.RubyMethod.newMethod:(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/callsite/CacheEntry;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyMethod;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/RubyUnboundMethod;
0 3 1 context Lorg/jruby/runtime/ThreadContext;
0 3 2 aReceiver Lorg/jruby/runtime/builtin/IRubyObject;
1 3 3 receiverClass Lorg/jruby/RubyClass;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
aReceiver
public org.jruby.RubyUnboundMethod rbClone();
descriptor: ()Lorg/jruby/RubyUnboundMethod;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.RubyUnboundMethod.implementationModule:Lorg/jruby/RubyModule;
aload 0
getfield org.jruby.RubyUnboundMethod.methodName:Ljava/lang/String;
aload 0
getfield org.jruby.RubyUnboundMethod.originModule:Lorg/jruby/RubyModule;
aload 0
getfield org.jruby.RubyUnboundMethod.originName:Ljava/lang/String;
aload 0
getfield org.jruby.RubyUnboundMethod.entry:Lorg/jruby/runtime/callsite/CacheEntry;
invokestatic org.jruby.RubyUnboundMethod.newUnboundMethod:(Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/RubyModule;Ljava/lang/String;Lorg/jruby/runtime/callsite/CacheEntry;)Lorg/jruby/RubyUnboundMethod;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyUnboundMethod;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"clone"})
public org.jruby.runtime.builtin.IRubyObject inspect();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
bipush 24
invokespecial java.lang.StringBuilder.<init>:(I)V
ldc "#<"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
astore 1
start local 1 1: bipush 35
istore 2
start local 2 2: aload 1
aload 0
invokevirtual org.jruby.RubyUnboundMethod.getMetaClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.RubyClass.getRealClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.RubyClass.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ": "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
3: aload 0
getfield org.jruby.RubyUnboundMethod.implementationModule:Lorg/jruby/RubyModule;
invokevirtual org.jruby.RubyModule.isSingleton:()Z
ifeq 6
4: aload 1
aload 0
getfield org.jruby.RubyUnboundMethod.implementationModule:Lorg/jruby/RubyModule;
invokevirtual org.jruby.RubyModule.inspect:()Lorg/jruby/runtime/builtin/IRubyObject;
invokevirtual java.lang.Object.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: goto 9
6: StackMap locals: java.lang.StringBuilder int
StackMap stack:
aload 1
aload 0
getfield org.jruby.RubyUnboundMethod.originModule:Lorg/jruby/RubyModule;
invokevirtual org.jruby.RubyModule.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
7: aload 0
getfield org.jruby.RubyUnboundMethod.implementationModule:Lorg/jruby/RubyModule;
aload 0
getfield org.jruby.RubyUnboundMethod.originModule:Lorg/jruby/RubyModule;
if_acmpeq 9
8: aload 1
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
getfield org.jruby.RubyUnboundMethod.implementationModule:Lorg/jruby/RubyModule;
invokevirtual org.jruby.RubyModule.getName:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
9: StackMap locals:
StackMap stack:
aload 1
iload 2
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 0
getfield org.jruby.RubyUnboundMethod.methodName:Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
10: aload 0
getfield org.jruby.RubyUnboundMethod.method:Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getRealMethod:()Lorg/jruby/internal/runtime/methods/DynamicMethod;
invokevirtual org.jruby.internal.runtime.methods.DynamicMethod.getName:()Ljava/lang/String;
astore 3
start local 3 11: aload 3
ifnull 13
aload 0
getfield org.jruby.RubyUnboundMethod.methodName:Ljava/lang/String;
aload 3
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifne 13
12: aload 1
bipush 40
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 41
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
13: StackMap locals: java.lang.String
StackMap stack:
aload 1
bipush 62
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
14: aload 0
invokevirtual org.jruby.RubyUnboundMethod.getRuntime:()Lorg/jruby/Ruby;
aload 1
invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Ljava/lang/CharSequence;)Lorg/jruby/RubyString;
astore 4
start local 4 15: aload 4
aload 0
invokevirtual org.jruby.RubyUnboundMethod.isTaint:()Z
invokevirtual org.jruby.RubyString.setTaint:(Z)V
16: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/jruby/RubyUnboundMethod;
1 17 1 str Ljava/lang/StringBuilder;
2 17 2 sharp C
11 17 3 realName Ljava/lang/String;
15 17 4 res Lorg/jruby/RubyString;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"inspect", "to_s"})
public org.jruby.runtime.builtin.IRubyObject super_method(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
aload 0
getfield org.jruby.RubyUnboundMethod.sourceModule:Lorg/jruby/RubyModule;
invokevirtual org.jruby.RubyModule.getSuperClass:()Lorg/jruby/RubyClass;
invokevirtual org.jruby.RubyUnboundMethod.super_method:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;Lorg/jruby/RubyModule;)Lorg/jruby/runtime/builtin/IRubyObject;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/RubyUnboundMethod;
0 1 1 context Lorg/jruby/runtime/ThreadContext;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
public org.jruby.AbstractRubyMethod rbClone();
descriptor: ()Lorg/jruby/AbstractRubyMethod;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.jruby.RubyUnboundMethod.rbClone:()Lorg/jruby/RubyUnboundMethod;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.jruby.runtime.builtin.IRubyObject rbClone();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.jruby.RubyUnboundMethod.rbClone:()Lorg/jruby/RubyUnboundMethod;
areturn
LocalVariableTable:
Start End Slot Name Signature
public org.jruby.runtime.builtin.IRubyObject op_equal(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: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
invokevirtual org.jruby.RubyUnboundMethod.op_equal:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/RubyBoolean;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "RubyUnboundMethod.java"
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyClass(name = {"UnboundMethod"}, parent = "Method")