public final class com.google.common.hash.Hashing
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.google.common.hash.Hashing
super_class: java.lang.Object
{
static final int GOOD_FAST_HASH_SEED;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: invokestatic java.lang.System.currentTimeMillis:()J
l2i
putstatic com.google.common.hash.Hashing.GOOD_FAST_HASH_SEED:I
return
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction goodFastHash(int);
descriptor: (I)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: iload 0
invokestatic com.google.common.hash.Hashing.checkPositiveAndMakeMultipleOf32:(I)I
istore 1
start local 1 1: iload 1
bipush 32
if_icmpne 3
2: getstatic com.google.common.hash.Murmur3_32HashFunction.GOOD_FAST_HASH_32:Lcom/google/common/hash/HashFunction;
areturn
3: StackMap locals: int
StackMap stack:
iload 1
sipush 128
if_icmpgt 5
4: getstatic com.google.common.hash.Murmur3_128HashFunction.GOOD_FAST_HASH_128:Lcom/google/common/hash/HashFunction;
areturn
5: StackMap locals:
StackMap stack:
iload 1
bipush 127
iadd
sipush 128
idiv
istore 2
start local 2 6: iload 2
anewarray com.google.common.hash.HashFunction
astore 3
start local 3 7: aload 3
iconst_0
getstatic com.google.common.hash.Murmur3_128HashFunction.GOOD_FAST_HASH_128:Lcom/google/common/hash/HashFunction;
aastore
8: getstatic com.google.common.hash.Hashing.GOOD_FAST_HASH_SEED:I
istore 4
start local 4 9: iconst_1
istore 5
start local 5 10: goto 14
11: StackMap locals: int int int com.google.common.hash.HashFunction[] int int
StackMap stack:
iload 4
ldc 1500450271
iadd
istore 4
12: aload 3
iload 5
iload 4
invokestatic com.google.common.hash.Hashing.murmur3_128:(I)Lcom/google/common/hash/HashFunction;
aastore
13: iinc 5 1
StackMap locals:
StackMap stack:
14: iload 5
iload 2
if_icmplt 11
end local 5 15: new com.google.common.hash.Hashing$ConcatenatedHashFunction
dup
aload 3
invokespecial com.google.common.hash.Hashing$ConcatenatedHashFunction.<init>:([Lcom/google/common/hash/HashFunction;)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 minimumBits I
1 16 1 bits I
6 16 2 hashFunctionsNeeded I
7 16 3 hashFunctions [Lcom/google/common/hash/HashFunction;
9 16 4 seed I
10 15 5 i I
MethodParameters:
Name Flags
minimumBits
public static com.google.common.hash.HashFunction murmur3_32(int);
descriptor: (I)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.hash.Murmur3_32HashFunction
dup
iload 0
invokespecial com.google.common.hash.Murmur3_32HashFunction.<init>:(I)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 seed I
MethodParameters:
Name Flags
seed
public static com.google.common.hash.HashFunction murmur3_32();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Murmur3_32HashFunction.MURMUR3_32:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction murmur3_128(int);
descriptor: (I)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.google.common.hash.Murmur3_128HashFunction
dup
iload 0
invokespecial com.google.common.hash.Murmur3_128HashFunction.<init>:(I)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 seed I
MethodParameters:
Name Flags
seed
public static com.google.common.hash.HashFunction murmur3_128();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Murmur3_128HashFunction.MURMUR3_128:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction sipHash24();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.SipHashFunction.SIP_HASH_24:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction sipHash24(long, long);
descriptor: (JJ)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=4, args_size=2
start local 0 start local 2 0: new com.google.common.hash.SipHashFunction
dup
iconst_2
iconst_4
lload 0
lload 2
invokespecial com.google.common.hash.SipHashFunction.<init>:(IIJJ)V
areturn
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 k0 J
0 1 2 k1 J
MethodParameters:
Name Flags
k0
k1
public static com.google.common.hash.HashFunction md5();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Hashing$Md5Holder.MD5:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public static com.google.common.hash.HashFunction sha1();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Hashing$Sha1Holder.SHA_1:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public static com.google.common.hash.HashFunction sha256();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Hashing$Sha256Holder.SHA_256:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction sha384();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Hashing$Sha384Holder.SHA_384:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction sha512();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Hashing$Sha512Holder.SHA_512:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction hmacMd5(java.security.Key);
descriptor: (Ljava/security/Key;)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: new com.google.common.hash.MacHashFunction
dup
ldc "HmacMD5"
aload 0
ldc "hmacMd5"
aload 0
invokestatic com.google.common.hash.Hashing.hmacToString:(Ljava/lang/String;Ljava/security/Key;)Ljava/lang/String;
invokespecial com.google.common.hash.MacHashFunction.<init>:(Ljava/lang/String;Ljava/security/Key;Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key Ljava/security/Key;
MethodParameters:
Name Flags
key
public static com.google.common.hash.HashFunction hmacMd5(byte[]);
descriptor: ([B)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new javax.crypto.spec.SecretKeySpec
dup
aload 0
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
ldc "HmacMD5"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokestatic com.google.common.hash.Hashing.hmacMd5:(Ljava/security/Key;)Lcom/google/common/hash/HashFunction;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key [B
MethodParameters:
Name Flags
key
public static com.google.common.hash.HashFunction hmacSha1(java.security.Key);
descriptor: (Ljava/security/Key;)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: new com.google.common.hash.MacHashFunction
dup
ldc "HmacSHA1"
aload 0
ldc "hmacSha1"
aload 0
invokestatic com.google.common.hash.Hashing.hmacToString:(Ljava/lang/String;Ljava/security/Key;)Ljava/lang/String;
invokespecial com.google.common.hash.MacHashFunction.<init>:(Ljava/lang/String;Ljava/security/Key;Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key Ljava/security/Key;
MethodParameters:
Name Flags
key
public static com.google.common.hash.HashFunction hmacSha1(byte[]);
descriptor: ([B)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new javax.crypto.spec.SecretKeySpec
dup
aload 0
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
ldc "HmacSHA1"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokestatic com.google.common.hash.Hashing.hmacSha1:(Ljava/security/Key;)Lcom/google/common/hash/HashFunction;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key [B
MethodParameters:
Name Flags
key
public static com.google.common.hash.HashFunction hmacSha256(java.security.Key);
descriptor: (Ljava/security/Key;)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: new com.google.common.hash.MacHashFunction
dup
ldc "HmacSHA256"
aload 0
ldc "hmacSha256"
aload 0
invokestatic com.google.common.hash.Hashing.hmacToString:(Ljava/lang/String;Ljava/security/Key;)Ljava/lang/String;
invokespecial com.google.common.hash.MacHashFunction.<init>:(Ljava/lang/String;Ljava/security/Key;Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key Ljava/security/Key;
MethodParameters:
Name Flags
key
public static com.google.common.hash.HashFunction hmacSha256(byte[]);
descriptor: ([B)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new javax.crypto.spec.SecretKeySpec
dup
aload 0
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
ldc "HmacSHA256"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokestatic com.google.common.hash.Hashing.hmacSha256:(Ljava/security/Key;)Lcom/google/common/hash/HashFunction;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key [B
MethodParameters:
Name Flags
key
public static com.google.common.hash.HashFunction hmacSha512(java.security.Key);
descriptor: (Ljava/security/Key;)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: new com.google.common.hash.MacHashFunction
dup
ldc "HmacSHA512"
aload 0
ldc "hmacSha512"
aload 0
invokestatic com.google.common.hash.Hashing.hmacToString:(Ljava/lang/String;Ljava/security/Key;)Ljava/lang/String;
invokespecial com.google.common.hash.MacHashFunction.<init>:(Ljava/lang/String;Ljava/security/Key;Ljava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key Ljava/security/Key;
MethodParameters:
Name Flags
key
public static com.google.common.hash.HashFunction hmacSha512(byte[]);
descriptor: ([B)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: new javax.crypto.spec.SecretKeySpec
dup
aload 0
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast byte[]
ldc "HmacSHA512"
invokespecial javax.crypto.spec.SecretKeySpec.<init>:([BLjava/lang/String;)V
invokestatic com.google.common.hash.Hashing.hmacSha512:(Ljava/security/Key;)Lcom/google/common/hash/HashFunction;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 key [B
MethodParameters:
Name Flags
key
private static java.lang.String hmacToString(java.lang.String, java.security.Key);
descriptor: (Ljava/lang/String;Ljava/security/Key;)Ljava/lang/String;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: ldc "Hashing.%s(Key[algorithm=%s, format=%s])"
iconst_3
anewarray java.lang.Object
dup
iconst_0
1: aload 0
aastore
dup
iconst_1
aload 1
invokeinterface java.security.Key.getAlgorithm:()Ljava/lang/String;
aastore
dup
iconst_2
aload 1
invokeinterface java.security.Key.getFormat:()Ljava/lang/String;
aastore
2: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 methodName Ljava/lang/String;
0 3 1 key Ljava/security/Key;
MethodParameters:
Name Flags
methodName
key
public static com.google.common.hash.HashFunction crc32c();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Crc32cHashFunction.CRC_32_C:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction crc32();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Hashing$ChecksumType.CRC_32:Lcom/google/common/hash/Hashing$ChecksumType;
getfield com.google.common.hash.Hashing$ChecksumType.hashFunction:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction adler32();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.Hashing$ChecksumType.ADLER_32:Lcom/google/common/hash/Hashing$ChecksumType;
getfield com.google.common.hash.Hashing$ChecksumType.hashFunction:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static com.google.common.hash.HashFunction farmHashFingerprint64();
descriptor: ()Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.common.hash.FarmHashFingerprint64.FARMHASH_FINGERPRINT_64:Lcom/google/common/hash/HashFunction;
areturn
LocalVariableTable:
Start End Slot Name Signature
public static int consistentHash(com.google.common.hash.HashCode, int);
descriptor: (Lcom/google/common/hash/HashCode;I)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.google.common.hash.HashCode.padToLong:()J
iload 1
invokestatic com.google.common.hash.Hashing.consistentHash:(JI)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 hashCode Lcom/google/common/hash/HashCode;
0 1 1 buckets I
MethodParameters:
Name Flags
hashCode
buckets
public static int consistentHash(long, int);
descriptor: (JI)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 2 0: iload 2
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "buckets must be positive: %s"
iload 2
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;I)V
3: new com.google.common.hash.Hashing$LinearCongruentialGenerator
dup
lload 0
invokespecial com.google.common.hash.Hashing$LinearCongruentialGenerator.<init>:(J)V
astore 3
start local 3 4: iconst_0
istore 4
start local 4 5: StackMap locals: com.google.common.hash.Hashing$LinearCongruentialGenerator int
StackMap stack:
iload 4
iconst_1
iadd
i2d
aload 3
invokevirtual com.google.common.hash.Hashing$LinearCongruentialGenerator.nextDouble:()D
ddiv
d2i
istore 5
start local 5 6: iload 5
iflt 9
iload 5
iload 2
if_icmpge 9
7: iload 5
istore 4
8: goto 5
9: StackMap locals: int
StackMap stack:
iload 4
ireturn
end local 5 end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 input J
0 10 2 buckets I
4 10 3 generator Lcom/google/common/hash/Hashing$LinearCongruentialGenerator;
5 10 4 candidate I
6 10 5 next I
MethodParameters:
Name Flags
input
buckets
public static com.google.common.hash.HashCode combineOrdered(java.lang.Iterable<com.google.common.hash.HashCode>);
descriptor: (Ljava/lang/Iterable;)Lcom/google/common/hash/HashCode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=8, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 1
start local 1 1: aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ldc "Must be at least 1 hash code to combine."
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
2: aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.hash.HashCode
invokevirtual com.google.common.hash.HashCode.bits:()I
istore 2
start local 2 3: iload 2
bipush 8
idiv
newarray 8
astore 3
start local 3 4: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 5
goto 16
StackMap locals: java.lang.Iterable java.util.Iterator int byte[] top java.util.Iterator
StackMap stack:
5: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.hash.HashCode
astore 4
start local 4 6: aload 4
invokevirtual com.google.common.hash.HashCode.asBytes:()[B
astore 6
start local 6 7: aload 6
arraylength
aload 3
arraylength
if_icmpne 8
iconst_1
goto 9
StackMap locals: java.lang.Iterable java.util.Iterator int byte[] com.google.common.hash.HashCode java.util.Iterator byte[]
StackMap stack:
8: iconst_0
StackMap locals:
StackMap stack: int
9: ldc "All hashcodes must have the same bit length."
10: invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
11: iconst_0
istore 7
start local 7 12: goto 15
13: StackMap locals: int
StackMap stack:
aload 3
iload 7
aload 3
iload 7
baload
bipush 37
imul
aload 6
iload 7
baload
ixor
i2b
bastore
14: iinc 7 1
StackMap locals:
StackMap stack:
15: iload 7
aload 6
arraylength
if_icmplt 13
end local 7 end local 6 end local 4 16: StackMap locals: java.lang.Iterable java.util.Iterator int byte[] top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
17: aload 3
invokestatic com.google.common.hash.HashCode.fromBytesNoCopy:([B)Lcom/google/common/hash/HashCode;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 hashCodes Ljava/lang/Iterable<Lcom/google/common/hash/HashCode;>;
1 18 1 iterator Ljava/util/Iterator<Lcom/google/common/hash/HashCode;>;
3 18 2 bits I
4 18 3 resultBytes [B
6 16 4 hashCode Lcom/google/common/hash/HashCode;
7 16 6 nextBytes [B
12 16 7 i I
Signature: (Ljava/lang/Iterable<Lcom/google/common/hash/HashCode;>;)Lcom/google/common/hash/HashCode;
MethodParameters:
Name Flags
hashCodes
public static com.google.common.hash.HashCode combineUnordered(java.lang.Iterable<com.google.common.hash.HashCode>);
descriptor: (Ljava/lang/Iterable;)Lcom/google/common/hash/HashCode;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 1
start local 1 1: aload 1
invokeinterface java.util.Iterator.hasNext:()Z
ldc "Must be at least 1 hash code to combine."
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
2: aload 1
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.hash.HashCode
invokevirtual com.google.common.hash.HashCode.bits:()I
bipush 8
idiv
newarray 8
astore 2
start local 2 3: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 4
goto 15
StackMap locals: java.lang.Iterable java.util.Iterator byte[] top java.util.Iterator
StackMap stack:
4: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.hash.HashCode
astore 3
start local 3 5: aload 3
invokevirtual com.google.common.hash.HashCode.asBytes:()[B
astore 5
start local 5 6: aload 5
arraylength
aload 2
arraylength
if_icmpne 7
iconst_1
goto 8
StackMap locals: java.lang.Iterable java.util.Iterator byte[] com.google.common.hash.HashCode java.util.Iterator byte[]
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: ldc "All hashcodes must have the same bit length."
9: invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
10: iconst_0
istore 6
start local 6 11: goto 14
12: StackMap locals: int
StackMap stack:
aload 2
iload 6
dup2
baload
aload 5
iload 6
baload
iadd
i2b
bastore
13: iinc 6 1
StackMap locals:
StackMap stack:
14: iload 6
aload 5
arraylength
if_icmplt 12
end local 6 end local 5 end local 3 15: StackMap locals: java.lang.Iterable java.util.Iterator byte[] top java.util.Iterator
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
16: aload 2
invokestatic com.google.common.hash.HashCode.fromBytesNoCopy:([B)Lcom/google/common/hash/HashCode;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 hashCodes Ljava/lang/Iterable<Lcom/google/common/hash/HashCode;>;
1 17 1 iterator Ljava/util/Iterator<Lcom/google/common/hash/HashCode;>;
3 17 2 resultBytes [B
5 15 3 hashCode Lcom/google/common/hash/HashCode;
6 15 5 nextBytes [B
11 15 6 i I
Signature: (Ljava/lang/Iterable<Lcom/google/common/hash/HashCode;>;)Lcom/google/common/hash/HashCode;
MethodParameters:
Name Flags
hashCodes
static int checkPositiveAndMakeMultipleOf32(int);
descriptor: (I)I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: iload 0
ifle 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "Number of bits must be positive"
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/Object;)V
3: iload 0
bipush 31
iadd
bipush -32
iand
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 bits I
MethodParameters:
Name Flags
bits
public static com.google.common.hash.HashFunction concatenating(com.google.common.hash.HashFunction, com.google.common.hash.HashFunction, com.google.common.hash.HashFunction[]);
descriptor: (Lcom/google/common/hash/HashFunction;Lcom/google/common/hash/HashFunction;[Lcom/google/common/hash/HashFunction;)Lcom/google/common/hash/HashFunction;
flags: (0x0089) ACC_PUBLIC, ACC_STATIC, ACC_VARARGS
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: aload 3
aload 0
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 3
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
3: aload 3
aload 2
invokestatic java.util.Arrays.asList:([Ljava/lang/Object;)Ljava/util/List;
invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
pop
4: new com.google.common.hash.Hashing$ConcatenatedHashFunction
dup
aload 3
iconst_0
anewarray com.google.common.hash.HashFunction
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.google.common.hash.HashFunction[]
invokespecial com.google.common.hash.Hashing$ConcatenatedHashFunction.<init>:([Lcom/google/common/hash/HashFunction;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 first Lcom/google/common/hash/HashFunction;
0 5 1 second Lcom/google/common/hash/HashFunction;
0 5 2 rest [Lcom/google/common/hash/HashFunction;
1 5 3 list Ljava/util/List<Lcom/google/common/hash/HashFunction;>;
MethodParameters:
Name Flags
first
second
rest
public static com.google.common.hash.HashFunction concatenating(java.lang.Iterable<com.google.common.hash.HashFunction>);
descriptor: (Ljava/lang/Iterable;)Lcom/google/common/hash/HashFunction;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokestatic com.google.common.base.Preconditions.checkNotNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 2: aload 0
invokeinterface java.lang.Iterable.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: java.lang.Iterable java.util.List top java.util.Iterator
StackMap stack:
3: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.google.common.hash.HashFunction
astore 2
start local 2 4: aload 1
aload 2
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
6: aload 1
invokeinterface java.util.List.size:()I
ifle 7
iconst_1
goto 8
StackMap locals: java.lang.Iterable java.util.List
StackMap stack:
7: iconst_0
StackMap locals:
StackMap stack: int
8: ldc "number of hash functions (%s) must be > 0"
aload 1
invokeinterface java.util.List.size:()I
invokestatic com.google.common.base.Preconditions.checkArgument:(ZLjava/lang/String;I)V
9: new com.google.common.hash.Hashing$ConcatenatedHashFunction
dup
aload 1
iconst_0
anewarray com.google.common.hash.HashFunction
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast com.google.common.hash.HashFunction[]
invokespecial com.google.common.hash.Hashing$ConcatenatedHashFunction.<init>:([Lcom/google/common/hash/HashFunction;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 hashFunctions Ljava/lang/Iterable<Lcom/google/common/hash/HashFunction;>;
2 10 1 list Ljava/util/List<Lcom/google/common/hash/HashFunction;>;
4 5 2 hashFunction Lcom/google/common/hash/HashFunction;
Signature: (Ljava/lang/Iterable<Lcom/google/common/hash/HashFunction;>;)Lcom/google/common/hash/HashFunction;
MethodParameters:
Name Flags
hashFunctions
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
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 Lcom/google/common/hash/Hashing;
}
SourceFile: "Hashing.java"
NestMembers:
com.google.common.hash.Hashing$ChecksumType com.google.common.hash.Hashing$ChecksumType$1 com.google.common.hash.Hashing$ChecksumType$2 com.google.common.hash.Hashing$ConcatenatedHashFunction com.google.common.hash.Hashing$LinearCongruentialGenerator com.google.common.hash.Hashing$Md5Holder com.google.common.hash.Hashing$Sha1Holder com.google.common.hash.Hashing$Sha256Holder com.google.common.hash.Hashing$Sha384Holder com.google.common.hash.Hashing$Sha512Holder
InnerClasses:
abstract ChecksumType = com.google.common.hash.Hashing$ChecksumType of com.google.common.hash.Hashing
private final ConcatenatedHashFunction = com.google.common.hash.Hashing$ConcatenatedHashFunction of com.google.common.hash.Hashing
private final LinearCongruentialGenerator = com.google.common.hash.Hashing$LinearCongruentialGenerator of com.google.common.hash.Hashing
private Md5Holder = com.google.common.hash.Hashing$Md5Holder of com.google.common.hash.Hashing
private Sha1Holder = com.google.common.hash.Hashing$Sha1Holder of com.google.common.hash.Hashing
private Sha256Holder = com.google.common.hash.Hashing$Sha256Holder of com.google.common.hash.Hashing
private Sha384Holder = com.google.common.hash.Hashing$Sha384Holder of com.google.common.hash.Hashing
private Sha512Holder = com.google.common.hash.Hashing$Sha512Holder of com.google.common.hash.Hashing
RuntimeInvisibleAnnotations:
com.google.common.annotations.Beta()