public class org.jruby.runtime.ivars.SynchronizedVariableAccessor extends org.jruby.runtime.ivars.VariableAccessor
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.runtime.ivars.SynchronizedVariableAccessor
super_class: org.jruby.runtime.ivars.VariableAccessor
{
public void <init>(org.jruby.RubyClass, java.lang.String, int, int);
descriptor: (Lorg/jruby/RubyClass;Ljava/lang/String;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
iload 3
iload 4
invokespecial org.jruby.runtime.ivars.VariableAccessor.<init>:(Lorg/jruby/RubyClass;Ljava/lang/String;II)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/runtime/ivars/SynchronizedVariableAccessor;
0 2 1 realClass Lorg/jruby/RubyClass;
0 2 2 name Ljava/lang/String;
0 2 3 index I
0 2 4 classId I
MethodParameters:
Name Flags
realClass
name
index
classId
public void set(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
checkcast org.jruby.RubyBasicObject
invokevirtual org.jruby.RubyBasicObject.ensureInstanceVariablesSettable:()V
1: aload 1
checkcast org.jruby.RubyBasicObject
aload 0
getfield org.jruby.runtime.ivars.SynchronizedVariableAccessor.realClass:Lorg/jruby/RubyClass;
aload 0
getfield org.jruby.runtime.ivars.SynchronizedVariableAccessor.index:I
aload 2
invokestatic org.jruby.runtime.ivars.SynchronizedVariableAccessor.setVariable:(Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;ILjava/lang/Object;)V
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/runtime/ivars/SynchronizedVariableAccessor;
0 3 1 object Ljava/lang/Object;
0 3 2 value Ljava/lang/Object;
MethodParameters:
Name Flags
object
value
public static void setVariableChecked(org.jruby.RubyBasicObject, org.jruby.RubyClass, int, java.lang.Object);
descriptor: (Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;ILjava/lang/Object;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.jruby.RubyBasicObject.ensureInstanceVariablesSettable:()V
1: aload 0
aload 1
iload 2
aload 3
invokestatic org.jruby.runtime.ivars.SynchronizedVariableAccessor.setVariable:(Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;ILjava/lang/Object;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 self Lorg/jruby/RubyBasicObject;
0 3 1 realClass Lorg/jruby/RubyClass;
0 3 2 index I
0 3 3 value Ljava/lang/Object;
MethodParameters:
Name Flags
self
realClass
index
value
public static void setVariable(org.jruby.RubyBasicObject, org.jruby.RubyClass, int, java.lang.Object);
descriptor: (Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;ILjava/lang/Object;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
dup
astore 4
monitorenter
1: aload 0
aload 1
iload 2
invokestatic org.jruby.runtime.ivars.SynchronizedVariableAccessor.ensureTable:(Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;I)[Ljava/lang/Object;
iload 2
aload 3
aastore
2: aload 4
monitorexit
3: goto 6
StackMap locals: org.jruby.RubyBasicObject org.jruby.RubyClass int java.lang.Object org.jruby.RubyBasicObject
StackMap stack: java.lang.Throwable
4: aload 4
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 self Lorg/jruby/RubyBasicObject;
0 7 1 realClass Lorg/jruby/RubyClass;
0 7 2 index I
0 7 3 value Ljava/lang/Object;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
self
realClass
index
value
private static java.lang.Object[] ensureTable(org.jruby.RubyBasicObject, org.jruby.RubyClass, int);
descriptor: (Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;I)[Ljava/lang/Object;
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 0
getfield org.jruby.RubyBasicObject.varTable:[Ljava/lang/Object;
astore 3
start local 3 1: aload 3
ifnonnull 3
2: aload 0
aload 1
invokestatic org.jruby.runtime.ivars.SynchronizedVariableAccessor.createTable:(Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;)[Ljava/lang/Object;
areturn
3: StackMap locals: java.lang.Object[]
StackMap stack:
aload 3
arraylength
iload 2
if_icmpgt 5
4: aload 0
aload 1
aload 3
invokestatic org.jruby.runtime.ivars.SynchronizedVariableAccessor.growTable:(Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;[Ljava/lang/Object;)[Ljava/lang/Object;
areturn
5: StackMap locals:
StackMap stack:
aload 3
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 self Lorg/jruby/RubyBasicObject;
0 6 1 realClass Lorg/jruby/RubyClass;
0 6 2 index I
1 6 3 currentTable [Ljava/lang/Object;
MethodParameters:
Name Flags
self
realClass
index
private static java.lang.Object[] createTable(org.jruby.RubyBasicObject, org.jruby.RubyClass);
descriptor: (Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.RubyClass.getVariableTableSizeWithExtras:()I
anewarray java.lang.Object
dup_x1
putfield org.jruby.RubyBasicObject.varTable:[Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 self Lorg/jruby/RubyBasicObject;
0 1 1 realClass Lorg/jruby/RubyClass;
MethodParameters:
Name Flags
self
realClass
private static java.lang.Object[] growTable(org.jruby.RubyBasicObject, org.jruby.RubyClass, java.lang.Object[]);
descriptor: (Lorg/jruby/RubyBasicObject;Lorg/jruby/RubyClass;[Ljava/lang/Object;)[Ljava/lang/Object;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.jruby.RubyClass.getVariableTableSizeWithExtras:()I
anewarray java.lang.Object
astore 3
start local 3 1: aload 2
iconst_0
aload 3
iconst_0
aload 2
arraylength
invokestatic org.jruby.util.ArraySupport.copy:([Ljava/lang/Object;I[Ljava/lang/Object;II)V
2: aload 0
aload 3
dup_x1
putfield org.jruby.RubyBasicObject.varTable:[Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 self Lorg/jruby/RubyBasicObject;
0 3 1 realClass Lorg/jruby/RubyClass;
0 3 2 currentTable [Ljava/lang/Object;
1 3 3 newTable [Ljava/lang/Object;
MethodParameters:
Name Flags
self
realClass
currentTable
}
SourceFile: "SynchronizedVariableAccessor.java"