public class org.jruby.ext.digest.RubyDigest$DigestBase extends org.jruby.RubyObject
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.jruby.ext.digest.RubyDigest$DigestBase
super_class: org.jruby.RubyObject
{
protected static final org.jruby.runtime.ObjectAllocator DIGEST_BASE_ALLOCATOR;
descriptor: Lorg/jruby/runtime/ObjectAllocator;
flags: (0x001c) ACC_PROTECTED, ACC_STATIC, ACC_FINAL
private java.security.MessageDigest algo;
descriptor: Ljava/security/MessageDigest;
flags: (0x0002) ACC_PRIVATE
private int blockLength;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new org.jruby.ext.digest.RubyDigest$DigestBase$1
dup
invokespecial org.jruby.ext.digest.RubyDigest$DigestBase$1.<init>:()V
putstatic org.jruby.ext.digest.RubyDigest$DigestBase.DIGEST_BASE_ALLOCATOR:Lorg/jruby/runtime/ObjectAllocator;
1: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.jruby.Ruby, org.jruby.RubyClass);
descriptor: (Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
invokespecial org.jruby.RubyObject.<init>:(Lorg/jruby/Ruby;Lorg/jruby/RubyClass;)V
1: aload 0
iconst_0
putfield org.jruby.ext.digest.RubyDigest$DigestBase.blockLength:I
2: aload 2
aload 1
ldc "Digest"
invokevirtual org.jruby.Ruby.getModule:(Ljava/lang/String;)Lorg/jruby/RubyModule;
ldc "Base"
invokevirtual org.jruby.RubyModule.getClass:(Ljava/lang/String;)Lorg/jruby/RubyClass;
if_acmpne 4
3: aload 1
ldc "Digest::Base is an abstract class"
invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals: org.jruby.ext.digest.RubyDigest$DigestBase org.jruby.Ruby org.jruby.RubyClass
StackMap stack:
aload 0
aload 2
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.getMetadata:(Lorg/jruby/RubyModule;)Lorg/jruby/ext/digest/RubyDigest$Metadata;
astore 3
start local 3 5: aload 3
ifnonnull 7
6: aload 1
new java.lang.StringBuilder
dup
ldc "the "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "() function is unimplemented on this machine"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
7: StackMap locals: org.jruby.ext.digest.RubyDigest$Metadata
StackMap stack:
aload 0
aload 3
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.setAlgorithm:(Lorg/jruby/ext/digest/RubyDigest$Metadata;)V
8: goto 11
StackMap locals:
StackMap stack: java.security.NoSuchAlgorithmException
9: pop
10: aload 1
new java.lang.StringBuilder
dup
ldc "the "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc "() function is unimplemented on this machine"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.jruby.Ruby.newNotImplementedError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
11: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
0 12 1 runtime Lorg/jruby/Ruby;
0 12 2 type Lorg/jruby/RubyClass;
5 12 3 metadata Lorg/jruby/ext/digest/RubyDigest$Metadata;
Exception table:
from to target type
7 8 9 Class java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
runtime
type
private org.jruby.ext.digest.RubyDigest$Metadata getMetadata(org.jruby.RubyModule);
descriptor: (Lorg/jruby/RubyModule;)Lorg/jruby/ext/digest/RubyDigest$Metadata;
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
astore 2
start local 2 1: goto 5
2: StackMap locals: org.jruby.RubyModule
StackMap stack:
aload 2
ldc "metadata"
invokevirtual org.jruby.RubyModule.getInternalVariable:(Ljava/lang/String;)Ljava/lang/Object;
checkcast org.jruby.ext.digest.RubyDigest$Metadata
astore 3
start local 3 3: aload 3
ifnull 4
aload 3
areturn
end local 3 4: StackMap locals:
StackMap stack:
aload 2
invokevirtual org.jruby.RubyModule.getSuperClass:()Lorg/jruby/RubyClass;
astore 2
StackMap locals:
StackMap stack:
5: aload 2
ifnonnull 2
end local 2 6: aconst_null
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
0 7 1 type Lorg/jruby/RubyModule;
1 6 2 current Lorg/jruby/RubyModule;
3 4 3 metadata Lorg/jruby/ext/digest/RubyDigest$Metadata;
MethodParameters:
Name Flags
type
public org.jruby.runtime.builtin.IRubyObject initialize_copy(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 1
aload 0
areturn
1: StackMap locals:
StackMap stack:
aload 1
checkcast org.jruby.ext.digest.RubyDigest$DigestBase
astore 2
start local 2 2: aload 2
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.checkFrozen:()V
3: aload 0
aload 2
getfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.clone:()Ljava/lang/Object;
checkcast java.security.MessageDigest
putfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
4: goto 8
5: StackMap locals: org.jruby.ext.digest.RubyDigest$DigestBase org.jruby.runtime.builtin.IRubyObject org.jruby.ext.digest.RubyDigest$DigestBase
StackMap stack: java.lang.CloneNotSupportedException
pop
6: aload 2
getfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.getAlgorithm:()Ljava/lang/String;
astore 3
start local 3 7: aload 0
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.getRuntime:()Lorg/jruby/Ruby;
new java.lang.StringBuilder
dup
ldc "Could not initialize copy of digest ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 3
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc ")"
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 8: StackMap locals:
StackMap stack:
aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
0 9 1 obj Lorg/jruby/runtime/builtin/IRubyObject;
2 9 2 from Lorg/jruby/ext/digest/RubyDigest$DigestBase;
7 8 3 name Ljava/lang/String;
Exception table:
from to target type
3 4 5 Class java.lang.CloneNotSupportedException
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(required = 1, visibility = org.jruby.runtime.Visibility.PRIVATE:Lorg/jruby/runtime/Visibility;)
MethodParameters:
Name Flags
obj
public org.jruby.runtime.builtin.IRubyObject update(org.jruby.runtime.builtin.IRubyObject);
descriptor: (Lorg/jruby/runtime/builtin/IRubyObject;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 1
invokeinterface org.jruby.runtime.builtin.IRubyObject.convertToString:()Lorg/jruby/RubyString;
invokevirtual org.jruby.RubyString.getByteList:()Lorg/jruby/util/ByteList;
astore 2
start local 2 1: aload 0
getfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
aload 2
invokevirtual org.jruby.util.ByteList.getUnsafeBytes:()[B
aload 2
invokevirtual org.jruby.util.ByteList.getBegin:()I
aload 2
invokevirtual org.jruby.util.ByteList.getRealSize:()I
invokevirtual java.security.MessageDigest.update:([BII)V
2: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
0 3 1 obj Lorg/jruby/runtime/builtin/IRubyObject;
1 3 2 bytes Lorg/jruby/util/ByteList;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod(name = {"update", "<<"}, required = 1)
MethodParameters:
Name Flags
obj
public org.jruby.runtime.builtin.IRubyObject finish();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.getRuntime:()Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
invokestatic org.jruby.RubyString.newStringNoCopy:(Lorg/jruby/Ruby;[B)Lorg/jruby/RubyString;
astore 1
start local 1 1: aload 0
getfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.reset:()V
2: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
1 3 1 digest Lorg/jruby/runtime/builtin/IRubyObject;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject digest_length();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.getRuntime:()Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.getDigestLength:()I
i2l
invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject block_length();
descriptor: ()Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.jruby.ext.digest.RubyDigest$DigestBase.blockLength:I
ifne 4
1: aload 0
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.getRuntime:()Lorg/jruby/Ruby;
2: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 0
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.getMetaClass:()Lorg/jruby/RubyClass;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " doesn't implement block_length()"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokevirtual org.jruby.Ruby.newRuntimeError:(Ljava/lang/String;)Lorg/jruby/exceptions/RaiseException;
athrow
4: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.jruby.ext.digest.RubyDigest$DigestBase.getRuntime:()Lorg/jruby/Ruby;
aload 0
getfield org.jruby.ext.digest.RubyDigest$DigestBase.blockLength:I
i2l
invokestatic org.jruby.RubyFixnum.newFixnum:(Lorg/jruby/Ruby;J)Lorg/jruby/RubyFixnum;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject reset();
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.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.reset:()V
1: aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
public org.jruby.runtime.builtin.IRubyObject bubblebabble(org.jruby.runtime.ThreadContext);
descriptor: (Lorg/jruby/runtime/ThreadContext;)Lorg/jruby/runtime/builtin/IRubyObject;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
invokevirtual java.security.MessageDigest.digest:()[B
astore 2
start local 2 1: aload 1
getfield org.jruby.runtime.ThreadContext.runtime:Lorg/jruby/Ruby;
aload 2
iconst_0
aload 2
arraylength
invokestatic org.jruby.ext.digest.BubbleBabble.bubblebabble:([BII)Lorg/jruby/util/ByteList;
invokestatic org.jruby.RubyString.newString:(Lorg/jruby/Ruby;Lorg/jruby/util/ByteList;)Lorg/jruby/RubyString;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
0 2 1 context Lorg/jruby/runtime/ThreadContext;
1 2 2 digest [B
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyMethod()
MethodParameters:
Name Flags
context
private void setAlgorithm(org.jruby.ext.digest.RubyDigest$Metadata);
descriptor: (Lorg/jruby/ext/digest/RubyDigest$Metadata;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.jruby.ext.digest.RubyDigest$Metadata.getName:()Ljava/lang/String;
invokestatic org.jruby.ext.digest.RubyDigest.createMessageDigest:(Ljava/lang/String;)Ljava/security/MessageDigest;
putfield org.jruby.ext.digest.RubyDigest$DigestBase.algo:Ljava/security/MessageDigest;
1: aload 0
aload 1
invokevirtual org.jruby.ext.digest.RubyDigest$Metadata.getBlockLength:()I
putfield org.jruby.ext.digest.RubyDigest$DigestBase.blockLength:I
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/jruby/ext/digest/RubyDigest$DigestBase;
0 3 1 metadata Lorg/jruby/ext/digest/RubyDigest$Metadata;
Exceptions:
throws java.security.NoSuchAlgorithmException
MethodParameters:
Name Flags
metadata
}
SourceFile: "RubyDigest.java"
NestHost: org.jruby.ext.digest.RubyDigest
InnerClasses:
public DigestBase = org.jruby.ext.digest.RubyDigest$DigestBase of org.jruby.ext.digest.RubyDigest
org.jruby.ext.digest.RubyDigest$DigestBase$1
private Metadata = org.jruby.ext.digest.RubyDigest$Metadata of org.jruby.ext.digest.RubyDigest
RuntimeVisibleAnnotations:
org.jruby.anno.JRubyClass(name = {"Digest::Base"})