public class org.jruby.ext.securerandom.RubySecureRandom
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ext.securerandom.RubySecureRandom
super_class: java.lang.Object
{
private static final int BI_ADD_BITS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 96
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/securerandom/RubySecureRandom;
public static org.jruby.runtime.builtin.IRubyObject random_bytes(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: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
bipush 16
invokestatic org.jruby.ext.securerandom.RubySecureRandom.nextBytes:(Lorg/jruby/runtime/ThreadContext;I)[B
invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true, name = {"random_bytes"})
MethodParameters:
Name Flags
context
self
public static org.jruby.runtime.builtin.IRubyObject random_bytes(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=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
aload 2
invokestatic org.jruby.ext.securerandom.RubySecureRandom.nextBytes:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)[B
invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 n Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true, name = {"random_bytes"})
MethodParameters:
Name Flags
context
self
n
public static org.jruby.runtime.builtin.IRubyObject gen_random(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=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokestatic org.jruby.ext.securerandom.RubySecureRandom.random_bytes:(Lorg/jruby/runtime/ThreadContext;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 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 n Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true, name = {"gen_random", "bytes"})
MethodParameters:
Name Flags
context
self
n
public static org.jruby.runtime.builtin.IRubyObject hex(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: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
bipush 16
invokestatic org.jruby.ext.securerandom.RubySecureRandom.nextBytes:(Lorg/jruby/runtime/ThreadContext;I)[B
iconst_0
invokestatic org.jruby.util.ConvertBytes.twosComplementToHexBytes:([BZ)[B
invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
self
public static org.jruby.runtime.builtin.IRubyObject hex(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=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
aload 2
invokestatic org.jruby.ext.securerandom.RubySecureRandom.nextBytes:(Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)[B
iconst_0
invokestatic org.jruby.util.ConvertBytes.twosComplementToHexBytes:([BZ)[B
invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 1 2 n Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
self
n
public static org.jruby.runtime.builtin.IRubyObject uuid(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: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
bipush 16
invokestatic org.jruby.ext.securerandom.RubySecureRandom.nextBytes:(Lorg/jruby/runtime/ThreadContext;I)[B
iconst_0
invokestatic org.jruby.util.ConvertBytes.bytesToUUIDBytes:([BZ)[B
invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true)
MethodParameters:
Name Flags
context
self
private static byte[] nextBytes(org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/ThreadContext;Lorg/jruby/runtime/builtin/IRubyObject;)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.isNil:()Z
ifeq 1
bipush 16
goto 2
StackMap locals:
StackMap stack: org.jruby.runtime.ThreadContext
1: aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToInteger:()Lorg/jruby/RubyInteger;
invokevirtual org.jruby.RubyInteger.getIntValue:()I
StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject
StackMap stack: org.jruby.runtime.ThreadContext int
2: invokestatic org.jruby.ext.securerandom.RubySecureRandom.nextBytes:(Lorg/jruby/runtime/ThreadContext;I)[B
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 context Lorg/jruby/runtime/ThreadContext;
0 3 1 n Lorg/jruby/runtime/builtin/IRubyObject;
MethodParameters:
Name Flags
context
n
private static byte[] nextBytes(org.jruby.runtime.ThreadContext, int);
descriptor: (Lorg/jruby/runtime/ThreadContext;I)[B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 1
ifge 1
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "negative argument: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newArgumentError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
1: StackMap locals:
StackMap stack:
iload 1
newarray 8
astore 2
start local 2 2: aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.getSecureRandom:(Lorg/jruby/runtime/ThreadContext;)Ljava/security/SecureRandom;
aload 2
invokevirtual java.security.SecureRandom.nextBytes:([B)V
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 context Lorg/jruby/runtime/ThreadContext;
0 4 1 size I
2 4 2 bytes [B
MethodParameters:
Name Flags
context
size
public static org.jruby.runtime.builtin.IRubyObject random_number(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: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
0 1 1 self Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true, name = {"random_number", "rand"})
MethodParameters:
Name Flags
context
self
public static org.jruby.runtime.builtin.IRubyObject random_number(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=7, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 2
instanceof org.jruby.RubyFixnum
ifeq 5
1: aload 2
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lstore 3
start local 3 2: lload 3
lconst_0
lcmp
ifge 3
aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
goto 4
StackMap locals: long
StackMap stack:
3: aload 0
lconst_0
lload 3
lconst_1
lsub
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomFixnum:(Lorg/jruby/runtime/ThreadContext;JJ)Lorg/jruby/RubyFixnum;
StackMap locals:
StackMap stack: org.jruby.RubyNumeric
4: areturn
end local 3 5: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubyFloat
ifeq 10
6: aload 2
checkcast org.jruby.RubyFloat
invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
dstore 3
start local 3 7: dload 3
dconst_0
dcmpg
ifge 8
aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
goto 9
StackMap locals: double
StackMap stack:
8: aload 0
dconst_0
dload 3
ldc 4.9E-324
dsub
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;DD)Lorg/jruby/RubyFloat;
StackMap locals:
StackMap stack: org.jruby.RubyFloat
9: areturn
end local 3 10: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubyBignum
ifeq 15
11: aload 2
checkcast org.jruby.RubyBignum
invokevirtual org.jruby.RubyBignum.getBigIntegerValue:()Ljava/math/BigInteger;
astore 3
start local 3 12: aload 3
invokevirtual java.math.BigInteger.signum:()I
ifge 13
aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
goto 14
StackMap locals: java.math.BigInteger
StackMap stack:
13: aload 0
iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 3
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomBignum:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Number;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
StackMap locals:
StackMap stack: org.jruby.RubyNumeric
14: areturn
end local 3 15: StackMap locals:
StackMap stack:
aload 2
instanceof org.jruby.RubyRange
ifeq 37
16: aload 2
checkcast org.jruby.RubyRange
aload 0
invokevirtual org.jruby.RubyRange.begin:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 3
start local 3 17: aload 2
checkcast org.jruby.RubyRange
aload 0
invokevirtual org.jruby.RubyRange.end:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
astore 4
start local 4 18: aload 2
checkcast org.jruby.RubyRange
invokevirtual org.jruby.RubyRange.isExcludeEnd:()Z
istore 5
start local 5 19: aload 3
instanceof org.jruby.RubyFixnum
ifeq 25
aload 4
instanceof org.jruby.RubyFixnum
ifeq 25
20: aload 3
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lstore 6
start local 6 21: aload 4
checkcast org.jruby.RubyFixnum
invokevirtual org.jruby.RubyFixnum.getLongValue:()J
lstore 8
start local 8 22: lload 6
lload 8
lcmp
ifle 23
aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
areturn
23: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject int long long
StackMap stack:
iload 5
ifeq 24
lload 8
lconst_1
lsub
lstore 8
24: StackMap locals:
StackMap stack:
aload 0
lload 6
lload 8
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomFixnum:(Lorg/jruby/runtime/ThreadContext;JJ)Lorg/jruby/RubyFixnum;
areturn
end local 8 end local 6 25: StackMap locals:
StackMap stack:
aload 3
instanceof org.jruby.RubyInteger
ifeq 31
aload 4
instanceof org.jruby.RubyInteger
ifeq 31
26: aload 3
checkcast org.jruby.RubyInteger
invokevirtual org.jruby.RubyInteger.getBigIntegerValue:()Ljava/math/BigInteger;
astore 6
start local 6 27: aload 4
checkcast org.jruby.RubyInteger
invokevirtual org.jruby.RubyInteger.getBigIntegerValue:()Ljava/math/BigInteger;
astore 7
start local 7 28: aload 6
aload 7
invokevirtual java.math.BigInteger.compareTo:(Ljava/math/BigInteger;)I
ifle 29
aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
areturn
29: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
iload 5
ifne 30
aload 7
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 7
30: StackMap locals:
StackMap stack:
aload 0
aload 6
aload 7
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomBignum:(Lorg/jruby/runtime/ThreadContext;Ljava/lang/Number;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
areturn
end local 7 end local 6 31: StackMap locals:
StackMap stack:
aload 3
instanceof org.jruby.RubyFloat
ifeq 37
aload 4
instanceof org.jruby.RubyFloat
ifeq 37
32: aload 3
checkcast org.jruby.RubyFloat
invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
dstore 6
start local 6 33: aload 4
checkcast org.jruby.RubyFloat
invokevirtual org.jruby.RubyFloat.getDoubleValue:()D
dstore 8
start local 8 34: dload 6
dload 8
dcmpl
ifle 35
aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
areturn
35: StackMap locals: double double
StackMap stack:
iload 5
ifeq 36
dload 8
ldc 4.9E-324
dsub
dstore 8
36: StackMap locals:
StackMap stack:
aload 0
dload 6
dload 8
invokestatic org.jruby.ext.securerandom.RubySecureRandom.randomDouble:(Lorg/jruby/runtime/ThreadContext;DD)Lorg/jruby/RubyFloat;
areturn
end local 8 end local 6 end local 5 end local 4 end local 3 37: StackMap locals: org.jruby.runtime.ThreadContext org.jruby.runtime.builtin.IRubyObject org.jruby.runtime.builtin.IRubyObject
StackMap stack:
aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "invalid argument - "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokeinterface org.jruby.runtime.builtin.IRubyObject.anyToString:()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 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 context Lorg/jruby/runtime/ThreadContext;
0 38 1 self Lorg/jruby/runtime/builtin/IRubyObject;
0 38 2 n Lorg/jruby/runtime/builtin/IRubyObject;
2 5 3 bound J
7 10 3 bound D
12 15 3 bound Ljava/math/BigInteger;
17 37 3 beg Lorg/jruby/runtime/builtin/IRubyObject;
18 37 4 end Lorg/jruby/runtime/builtin/IRubyObject;
19 37 5 exclude Z
21 25 6 lower J
22 25 8 upper J
27 31 6 lower Ljava/math/BigInteger;
28 31 7 upper Ljava/math/BigInteger;
33 37 6 lower D
34 37 8 upper D
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(meta = true, name = {"random_number", "rand"})
MethodParameters:
Name Flags
context
self
n
private static org.jruby.RubyFixnum randomFixnum(org.jruby.runtime.ThreadContext, long, long);
descriptor: (Lorg/jruby/runtime/ThreadContext;JJ)Lorg/jruby/RubyFixnum;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.getSecureRandom:(Lorg/jruby/runtime/ThreadContext;)Ljava/security/SecureRandom;
invokevirtual java.security.SecureRandom.nextDouble:()D
dstore 5
start local 5 1: dload 5
lload 3
l2d
dmul
dconst_1
dload 5
dsub
lload 1
l2d
dmul
dadd
dload 5
dadd
dstore 5
2: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
dload 5
invokestatic java.lang.Math.floor:(D)D
d2l
invokevirtual org.jruby.Ruby.newFixnum:(J)Lorg/jruby/RubyFixnum;
areturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 context Lorg/jruby/runtime/ThreadContext;
0 3 1 lower J
0 3 3 upper J
1 3 5 rnd D
MethodParameters:
Name Flags
context final
lower final
upper final
private static org.jruby.RubyBignum randomBignum(org.jruby.runtime.ThreadContext, java.lang.Number, java.math.BigInteger);
descriptor: (Lorg/jruby/runtime/ThreadContext;Ljava/lang/Number;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
instanceof java.math.BigInteger
ifeq 1
aload 1
checkcast java.math.BigInteger
goto 2
StackMap locals:
StackMap stack:
1: aload 1
invokevirtual java.lang.Number.longValue:()J
invokestatic java.math.BigInteger.valueOf:(J)Ljava/math/BigInteger;
StackMap locals:
StackMap stack: java.math.BigInteger
2: astore 3
start local 3 3: aload 2
aload 3
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
start local 4 4: aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.getSecureRandom:(Lorg/jruby/runtime/ThreadContext;)Ljava/security/SecureRandom;
aload 4
aload 4
invokevirtual java.math.BigInteger.bitLength:()I
invokestatic org.jruby.ext.securerandom.RubySecureRandom.nextBigInteger:(Ljava/security/SecureRandom;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
astore 5
start local 5 5: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 5
aload 3
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokestatic org.jruby.RubyBignum.newBignum:(Lorg/jruby/Ruby;Ljava/math/BigInteger;)Lorg/jruby/RubyBignum;
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 6 0 context Lorg/jruby/runtime/ThreadContext;
0 6 1 lower Ljava/lang/Number;
0 6 2 upperExc Ljava/math/BigInteger;
3 6 3 lowerBig Ljava/math/BigInteger;
4 6 4 bound Ljava/math/BigInteger;
5 6 5 rnd Ljava/math/BigInteger;
MethodParameters:
Name Flags
context final
lower final
upperExc final
private static java.math.BigInteger nextBigInteger(java.security.SecureRandom, java.math.BigInteger, int);
descriptor: (Ljava/security/SecureRandom;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: new java.math.BigInteger
dup
iload 2
bipush 96
iadd
aload 0
invokespecial java.math.BigInteger.<init>:(ILjava/util/Random;)V
astore 3
start local 3 1: aload 3
aload 1
invokevirtual java.math.BigInteger.mod:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
astore 4
start local 4 2: aload 3
aload 1
invokevirtual java.math.BigInteger.add:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
aload 4
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
getstatic java.math.BigInteger.ONE:Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.subtract:(Ljava/math/BigInteger;)Ljava/math/BigInteger;
invokevirtual java.math.BigInteger.bitLength:()I
iload 2
bipush 96
iadd
if_icmplt 4
3: aload 0
aload 1
iload 2
invokestatic org.jruby.ext.securerandom.RubySecureRandom.nextBigInteger:(Ljava/security/SecureRandom;Ljava/math/BigInteger;I)Ljava/math/BigInteger;
areturn
4: StackMap locals: java.math.BigInteger java.math.BigInteger
StackMap stack:
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 5 0 random Ljava/security/SecureRandom;
0 5 1 bound Ljava/math/BigInteger;
0 5 2 bits I
1 5 3 val Ljava/math/BigInteger;
2 5 4 rnd Ljava/math/BigInteger;
MethodParameters:
Name Flags
random final
bound final
bits final
private static org.jruby.RubyFloat randomDouble(org.jruby.runtime.ThreadContext, double, double);
descriptor: (Lorg/jruby/runtime/ThreadContext;DD)Lorg/jruby/RubyFloat;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=7, args_size=3
start local 0 start local 1 start local 3 0: aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.getSecureRandom:(Lorg/jruby/runtime/ThreadContext;)Ljava/security/SecureRandom;
invokevirtual java.security.SecureRandom.nextDouble:()D
dstore 5
start local 5 1: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
dload 5
dload 3
dmul
dconst_1
dload 5
dsub
dload 1
dmul
dadd
invokevirtual org.jruby.Ruby.newFloat:(D)Lorg/jruby/RubyFloat;
areturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 context Lorg/jruby/runtime/ThreadContext;
0 2 1 lower D
0 2 3 upper D
1 2 5 rnd D
MethodParameters:
Name Flags
context final
lower final
upper final
private static org.jruby.RubyFloat randomDouble(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/RubyFloat;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 0
invokestatic org.jruby.ext.securerandom.RubySecureRandom.getSecureRandom:(Lorg/jruby/runtime/ThreadContext;)Ljava/security/SecureRandom;
invokevirtual java.security.SecureRandom.nextDouble:()D
invokevirtual org.jruby.Ruby.newFloat:(D)Lorg/jruby/RubyFloat;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
context final
private static java.security.SecureRandom getSecureRandom(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Ljava/security/SecureRandom;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.runtime.ThreadContext.getSecureRandom:()Ljava/security/SecureRandom;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 context Lorg/jruby/runtime/ThreadContext;
MethodParameters:
Name Flags
context
}
SourceFile: "RubySecureRandom.java"
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyModule(name = {"SecureRandom"})