final class com.google.common.hash.Hashing$ConcatenatedHashFunction extends com.google.common.hash.AbstractCompositeHashFunction
{
private transient void <init>(com.google.common.hash.HashFunction[])
{
com.google.common.hash.HashFunction[] v;
com.google.common.hash.Hashing$ConcatenatedHashFunction v;
int v, v, v, v, v;
com.google.common.hash.HashFunction v;
boolean v;
v := @this: com.google.common.hash.Hashing$ConcatenatedHashFunction;
v := @parameter: com.google.common.hash.HashFunction[];
specialinvoke v.<com.google.common.hash.AbstractCompositeHashFunction: void <init>(com.google.common.hash.HashFunction[])>(v);
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<com.google.common.hash.HashFunction: int bits()>();
v = v % 8;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = interfaceinvoke v.<com.google.common.hash.HashFunction: int bits()>();
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean,java.lang.String,int,java.lang.Object)>(v, "the number of bits (%s) in hashFunction (%s) must be divisible by 8", v, v);
v = v + 1;
goto label;
label:
return;
}
com.google.common.hash.HashCode makeHash(com.google.common.hash.Hasher[])
{
byte[] v;
com.google.common.hash.HashCode v, v;
com.google.common.hash.Hasher[] v;
com.google.common.hash.Hashing$ConcatenatedHashFunction v;
int v, v, v, v, v, v, v, v;
com.google.common.hash.Hasher v;
v := @this: com.google.common.hash.Hashing$ConcatenatedHashFunction;
v := @parameter: com.google.common.hash.Hasher[];
v = virtualinvoke v.<com.google.common.hash.Hashing$ConcatenatedHashFunction: int bits()>();
v = v / 8;
v = newarray (byte)[v];
v = 0;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<com.google.common.hash.Hasher: com.google.common.hash.HashCode hash()>();
v = virtualinvoke v.<com.google.common.hash.HashCode: int bits()>();
v = v / 8;
v = virtualinvoke v.<com.google.common.hash.HashCode: int writeBytesTo(byte[],int,int)>(v, v, v);
v = v + v;
v = v + 1;
goto label;
label:
v = staticinvoke <com.google.common.hash.HashCode: com.google.common.hash.HashCode fromBytesNoCopy(byte[])>(v);
return v;
}
public int bits()
{
int v, v, v, v;
com.google.common.hash.HashFunction[] v;
com.google.common.hash.HashFunction v;
com.google.common.hash.Hashing$ConcatenatedHashFunction v;
v := @this: com.google.common.hash.Hashing$ConcatenatedHashFunction;
v = 0;
v = v.<com.google.common.hash.Hashing$ConcatenatedHashFunction: com.google.common.hash.HashFunction[] functions>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = interfaceinvoke v.<com.google.common.hash.HashFunction: int bits()>();
v = v + v;
v = v + 1;
goto label;
label:
return v;
}
public boolean equals(java.lang.Object)
{
com.google.common.hash.HashFunction[] v, v;
java.lang.Object v;
boolean v, v;
com.google.common.hash.Hashing$ConcatenatedHashFunction v;
v := @this: com.google.common.hash.Hashing$ConcatenatedHashFunction;
v := @parameter: java.lang.Object;
v = v instanceof com.google.common.hash.Hashing$ConcatenatedHashFunction;
if v == 0 goto label;
v = v.<com.google.common.hash.Hashing$ConcatenatedHashFunction: com.google.common.hash.HashFunction[] functions>;
v = v.<com.google.common.hash.Hashing$ConcatenatedHashFunction: com.google.common.hash.HashFunction[] functions>;
v = staticinvoke <java.util.Arrays: boolean equals(java.lang.Object[],java.lang.Object[])>(v, v);
return v;
label:
return 0;
}
public int hashCode()
{
int v;
com.google.common.hash.HashFunction[] v;
com.google.common.hash.Hashing$ConcatenatedHashFunction v;
v := @this: com.google.common.hash.Hashing$ConcatenatedHashFunction;
v = v.<com.google.common.hash.Hashing$ConcatenatedHashFunction: com.google.common.hash.HashFunction[] functions>;
v = staticinvoke <java.util.Arrays: int hashCode(java.lang.Object[])>(v);
return v;
}
}