public class org.iq.leveldb.table.Block extends java.lang.Object implements org.iq.leveldb.impl.SeekingIterable
{
private final org.iq.leveldb.util.Slice block;
private final java.util.Comparator comparator;
private final org.iq.leveldb.util.Slice data;
private final org.iq.leveldb.util.Slice restartPositions;
public void <init>(org.iq.leveldb.util.Slice, java.util.Comparator)
{
org.iq.leveldb.util.Slice v, v, v, v, v, v;
java.lang.Object[] v;
int v, v, v, v, v, v, v, v, v, v, v;
org.iq.leveldb.table.Block v;
java.lang.Byte v;
boolean v, v;
java.util.Comparator v;
v := @this: org.iq.leveldb.table.Block;
v := @parameter: org.iq.leveldb.util.Slice;
v := @parameter: java.util.Comparator;
specialinvoke v.<java.lang.Object: void <init>()>();
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "block is null");
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
if v < 4 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = newarray (java.lang.Object)[1];
v = staticinvoke <java.lang.Byte: java.lang.Byte valueOf(byte)>(4);
v[0] = v;
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean,java.lang.String,java.lang.Object[])>(v, "Block is corrupt: size must be at least %s block", v);
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "comparator is null");
v = virtualinvoke v.<org.iq.leveldb.util.Slice: org.iq.leveldb.util.Slice slice()>();
v.<org.iq.leveldb.table.Block: org.iq.leveldb.util.Slice block> = v;
v.<org.iq.leveldb.table.Block: java.util.Comparator comparator> = v;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
v = v - 4;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int getInt(int)>(v);
if v <= 0 goto label;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
v = 1 + v;
v = v * 4;
v = v - v;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
v = v - 4;
if v >= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkArgument(boolean,java.lang.Object)>(v, "Block is corrupt: restart offset count is greater than block size");
v = v * 4;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: org.iq.leveldb.util.Slice slice(int,int)>(v, v);
v.<org.iq.leveldb.table.Block: org.iq.leveldb.util.Slice restartPositions> = v;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: org.iq.leveldb.util.Slice slice(int,int)>(0, v);
v.<org.iq.leveldb.table.Block: org.iq.leveldb.util.Slice data> = v;
goto label;
label:
v = <org.iq.leveldb.util.Slices: org.iq.leveldb.util.Slice EMPTY_SLICE>;
v.<org.iq.leveldb.table.Block: org.iq.leveldb.util.Slice data> = v;
v = <org.iq.leveldb.util.Slices: org.iq.leveldb.util.Slice EMPTY_SLICE>;
v.<org.iq.leveldb.table.Block: org.iq.leveldb.util.Slice restartPositions> = v;
label:
return;
}
public long size()
{
int v;
org.iq.leveldb.table.Block v;
org.iq.leveldb.util.Slice v;
v := @this: org.iq.leveldb.table.Block;
v = v.<org.iq.leveldb.table.Block: org.iq.leveldb.util.Slice block>;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
return v;
}
public org.iq.leveldb.table.BlockIterator iterator()
{
org.iq.leveldb.util.Slice v, v;
org.iq.leveldb.table.Block v;
org.iq.leveldb.table.BlockIterator v;
java.util.Comparator v;
v := @this: org.iq.leveldb.table.Block;
v = new org.iq.leveldb.table.BlockIterator;
v = v.<org.iq.leveldb.table.Block: org.iq.leveldb.util.Slice data>;
v = v.<org.iq.leveldb.table.Block: org.iq.leveldb.util.Slice restartPositions>;
v = v.<org.iq.leveldb.table.Block: java.util.Comparator comparator>;
specialinvoke v.<org.iq.leveldb.table.BlockIterator: void <init>(org.iq.leveldb.util.Slice,org.iq.leveldb.util.Slice,java.util.Comparator)>(v, v, v);
return v;
}
}