public class org.iq.leveldb.table.TableBuilder extends java.lang.Object
{
public static final long TABLE_MAGIC_NUMBER;
private final int blockRestartInterval;
private final int blockSize;
private final org.iq.leveldb.CompressionType compressionType;
private final java.nio.channels.FileChannel fileChannel;
private final org.iq.leveldb.table.BlockBuilder dataBlockBuilder;
private final org.iq.leveldb.table.BlockBuilder indexBlockBuilder;
private org.iq.leveldb.util.Slice lastKey;
private final org.iq.leveldb.table.UserComparator userComparator;
private long entryCount;
private boolean closed;
private boolean pendingIndexEntry;
private org.iq.leveldb.table.BlockHandle pendingHandle;
private org.iq.leveldb.util.Slice compressedOutput;
private long position;
static final boolean $assertionsDisabled;
public void <init>(org.iq.leveldb.Options, java.nio.channels.FileChannel, org.iq.leveldb.table.UserComparator)
{
org.iq.leveldb.util.Slice v;
java.lang.Object[] v;
long v, v, v, v;
byte v;
java.lang.Long v, v;
org.iq.leveldb.table.UserComparator v;
int v, v, v, v;
org.iq.leveldb.table.BlockBuilder v, v;
boolean v;
double v, v;
org.iq.leveldb.CompressionType v;
java.io.IOException v;
java.lang.RuntimeException v;
org.iq.leveldb.table.TableBuilder v;
org.iq.leveldb.Options v;
java.nio.channels.FileChannel v;
v := @this: org.iq.leveldb.table.TableBuilder;
v := @parameter: org.iq.leveldb.Options;
v := @parameter: java.nio.channels.FileChannel;
v := @parameter: org.iq.leveldb.table.UserComparator;
specialinvoke v.<java.lang.Object: void <init>()>();
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "options is null");
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "fileChannel is null");
label:
v = v.<org.iq.leveldb.table.TableBuilder: long position>;
v = virtualinvoke v.<java.nio.channels.FileChannel: long position()>();
v = v cmp v;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = newarray (java.lang.Object)[2];
v = v.<org.iq.leveldb.table.TableBuilder: long position>;
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[0] = v;
v = virtualinvoke v.<java.nio.channels.FileChannel: long position()>();
v = staticinvoke <java.lang.Long: java.lang.Long valueOf(long)>(v);
v[1] = v;
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.String,java.lang.Object[])>(v, "Expected position %s to equal fileChannel.position %s", v);
label:
goto label;
label:
v := @caughtexception;
v = staticinvoke <com.google.common.base.Throwables: java.lang.RuntimeException propagate(java.lang.Throwable)>(v);
throw v;
label:
v.<org.iq.leveldb.table.TableBuilder: java.nio.channels.FileChannel fileChannel> = v;
v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.UserComparator userComparator> = v;
v = virtualinvoke v.<org.iq.leveldb.Options: int blockRestartInterval()>();
v.<org.iq.leveldb.table.TableBuilder: int blockRestartInterval> = v;
v = virtualinvoke v.<org.iq.leveldb.Options: int blockSize()>();
v.<org.iq.leveldb.table.TableBuilder: int blockSize> = v;
v = virtualinvoke v.<org.iq.leveldb.Options: org.iq.leveldb.CompressionType compressionType()>();
v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.CompressionType compressionType> = v;
v = new org.iq.leveldb.table.BlockBuilder;
v = v.<org.iq.leveldb.table.TableBuilder: int blockSize>;
v = v * 1.1;
v = staticinvoke <java.lang.Math: double min(double,double)>(v, 2097152.0);
v = v.<org.iq.leveldb.table.TableBuilder: int blockRestartInterval>;
specialinvoke v.<org.iq.leveldb.table.BlockBuilder: void <init>(int,int,java.util.Comparator)>(v, v, v);
v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder dataBlockBuilder> = v;
v = new org.iq.leveldb.table.BlockBuilder;
specialinvoke v.<org.iq.leveldb.table.BlockBuilder: void <init>(int,int,java.util.Comparator)>(20480, 1, v);
v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder indexBlockBuilder> = v;
v = <org.iq.leveldb.util.Slices: org.iq.leveldb.util.Slice EMPTY_SLICE>;
v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice lastKey> = v;
return;
catch java.io.IOException from label to label with label;
}
public long getEntryCount()
{
long v;
org.iq.leveldb.table.TableBuilder v;
v := @this: org.iq.leveldb.table.TableBuilder;
v = v.<org.iq.leveldb.table.TableBuilder: long entryCount>;
return v;
}
public long getFileSize() throws java.io.IOException
{
int v;
org.iq.leveldb.table.BlockBuilder v;
long v, v;
org.iq.leveldb.table.TableBuilder v;
v := @this: org.iq.leveldb.table.TableBuilder;
v = v.<org.iq.leveldb.table.TableBuilder: long position>;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder dataBlockBuilder>;
v = virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: int currentSizeEstimate()>();
v = v + v;
return v;
}
public void add(org.iq.leveldb.table.BlockEntry) throws java.io.IOException
{
org.iq.leveldb.util.Slice v, v;
org.iq.leveldb.table.TableBuilder v;
org.iq.leveldb.table.BlockEntry v;
v := @this: org.iq.leveldb.table.TableBuilder;
v := @parameter: org.iq.leveldb.table.BlockEntry;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "blockEntry is null");
v = virtualinvoke v.<org.iq.leveldb.table.BlockEntry: org.iq.leveldb.util.Slice getKey()>();
v = virtualinvoke v.<org.iq.leveldb.table.BlockEntry: org.iq.leveldb.util.Slice getValue()>();
virtualinvoke v.<org.iq.leveldb.table.TableBuilder: void add(org.iq.leveldb.util.Slice,org.iq.leveldb.util.Slice)>(v, v);
return;
}
public void add(org.iq.leveldb.util.Slice, org.iq.leveldb.util.Slice) throws java.io.IOException
{
org.iq.leveldb.util.Slice v, v, v, v, v, v;
long v, v, v;
java.lang.AssertionError v;
byte v;
org.iq.leveldb.table.BlockHandle v;
org.iq.leveldb.table.UserComparator v, v;
int v, v, v;
org.iq.leveldb.table.BlockBuilder v, v, v, v;
boolean v, v, v, v, v;
org.iq.leveldb.table.TableBuilder v;
v := @this: org.iq.leveldb.table.TableBuilder;
v := @parameter: org.iq.leveldb.util.Slice;
v := @parameter: org.iq.leveldb.util.Slice;
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "key is null");
staticinvoke <com.google.common.base.Preconditions: java.lang.Object checkNotNull(java.lang.Object,java.lang.Object)>(v, "value is null");
v = v.<org.iq.leveldb.table.TableBuilder: boolean closed>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "table is finished");
v = v.<org.iq.leveldb.table.TableBuilder: long entryCount>;
v = v cmp 0L;
if v <= 0 goto label;
v = <org.iq.leveldb.table.TableBuilder: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.UserComparator userComparator>;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice lastKey>;
v = interfaceinvoke v.<org.iq.leveldb.table.UserComparator: int compare(java.lang.Object,java.lang.Object)>(v, v);
if v > 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>(java.lang.Object)>("key must be greater than last key");
throw v;
label:
v = v.<org.iq.leveldb.table.TableBuilder: boolean pendingIndexEntry>;
if v == 0 goto label;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder dataBlockBuilder>;
v = virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: boolean isEmpty()>();
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "Internal error: Table has a pending index entry but data block builder is empty");
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.UserComparator userComparator>;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice lastKey>;
v = interfaceinvoke v.<org.iq.leveldb.table.UserComparator: org.iq.leveldb.util.Slice findShortestSeparator(org.iq.leveldb.util.Slice,org.iq.leveldb.util.Slice)>(v, v);
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockHandle pendingHandle>;
v = staticinvoke <org.iq.leveldb.table.BlockHandle: org.iq.leveldb.util.Slice writeBlockHandle(org.iq.leveldb.table.BlockHandle)>(v);
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder indexBlockBuilder>;
virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: void add(org.iq.leveldb.util.Slice,org.iq.leveldb.util.Slice)>(v, v);
v.<org.iq.leveldb.table.TableBuilder: boolean pendingIndexEntry> = 0;
label:
v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice lastKey> = v;
v = v.<org.iq.leveldb.table.TableBuilder: long entryCount>;
v = v + 1L;
v.<org.iq.leveldb.table.TableBuilder: long entryCount> = v;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder dataBlockBuilder>;
virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: void add(org.iq.leveldb.util.Slice,org.iq.leveldb.util.Slice)>(v, v);
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder dataBlockBuilder>;
v = virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: int currentSizeEstimate()>();
v = v.<org.iq.leveldb.table.TableBuilder: int blockSize>;
if v < v goto label;
specialinvoke v.<org.iq.leveldb.table.TableBuilder: void flush()>();
label:
return;
}
private void flush() throws java.io.IOException
{
org.iq.leveldb.table.TableBuilder v;
org.iq.leveldb.table.BlockHandle v;
org.iq.leveldb.table.BlockBuilder v, v;
boolean v, v, v, v, v;
v := @this: org.iq.leveldb.table.TableBuilder;
v = v.<org.iq.leveldb.table.TableBuilder: boolean closed>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "table is finished");
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder dataBlockBuilder>;
v = virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: boolean isEmpty()>();
if v == 0 goto label;
return;
label:
v = v.<org.iq.leveldb.table.TableBuilder: boolean pendingIndexEntry>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "Internal error: Table already has a pending index entry to flush");
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder dataBlockBuilder>;
v = specialinvoke v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockHandle writeBlock(org.iq.leveldb.table.BlockBuilder)>(v);
v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockHandle pendingHandle> = v;
v.<org.iq.leveldb.table.TableBuilder: boolean pendingIndexEntry> = 1;
return;
}
private org.iq.leveldb.table.BlockHandle writeBlock(org.iq.leveldb.table.BlockBuilder) throws java.io.IOException
{
byte[] v, v;
org.iq.leveldb.util.Slice v, v, v, v, v;
java.nio.ByteBuffer v, v;
org.iq.leveldb.table.BlockTrailer v;
org.iq.leveldb.table.BlockBuilder v;
java.nio.ByteBuffer[] v;
long v, v, v, v;
org.iq.leveldb.table.BlockHandle v;
int v, v, v, v, v, v, v, v, v, v, v;
org.iq.leveldb.CompressionType v, v, v;
java.io.IOException v;
org.iq.leveldb.table.TableBuilder v;
java.nio.channels.FileChannel v;
v := @this: org.iq.leveldb.table.TableBuilder;
v := @parameter: org.iq.leveldb.table.BlockBuilder;
v = virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: org.iq.leveldb.util.Slice finish()>();
v = v;
v = <org.iq.leveldb.CompressionType: org.iq.leveldb.CompressionType NONE>;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.CompressionType compressionType>;
v = <org.iq.leveldb.CompressionType: org.iq.leveldb.CompressionType SNAPPY>;
if v != v goto label;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
v = staticinvoke <org.iq.leveldb.table.TableBuilder: int maxCompressedLength(int)>(v);
virtualinvoke v.<org.iq.leveldb.table.TableBuilder: void ensureCompressedOutputCapacity(int)>(v);
label:
v = virtualinvoke v.<org.iq.leveldb.util.Slice: byte[] getRawArray()>();
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int getRawOffset()>();
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice compressedOutput>;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: byte[] getRawArray()>();
v = staticinvoke <org.iq.leveldb.util.Snappy: int compress(byte[],int,int,byte[],int)>(v, v, v, v, 0);
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
v = v / 8;
v = v - v;
if v >= v goto label;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice compressedOutput>;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: org.iq.leveldb.util.Slice slice(int,int)>(0, v);
v = <org.iq.leveldb.CompressionType: org.iq.leveldb.CompressionType SNAPPY>;
label:
goto label;
label:
v := @caughtexception;
label:
v = new org.iq.leveldb.table.BlockTrailer;
v = staticinvoke <org.iq.leveldb.table.TableBuilder: int crc32c(org.iq.leveldb.util.Slice,org.iq.leveldb.CompressionType)>(v, v);
specialinvoke v.<org.iq.leveldb.table.BlockTrailer: void <init>(org.iq.leveldb.CompressionType,int)>(v, v);
v = staticinvoke <org.iq.leveldb.table.BlockTrailer: org.iq.leveldb.util.Slice writeBlockTrailer(org.iq.leveldb.table.BlockTrailer)>(v);
v = new org.iq.leveldb.table.BlockHandle;
v = v.<org.iq.leveldb.table.TableBuilder: long position>;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
specialinvoke v.<org.iq.leveldb.table.BlockHandle: void <init>(long,int)>(v, v);
v = v.<org.iq.leveldb.table.TableBuilder: long position>;
v = v.<org.iq.leveldb.table.TableBuilder: java.nio.channels.FileChannel fileChannel>;
v = newarray (java.nio.ByteBuffer)[2];
v = virtualinvoke v.<org.iq.leveldb.util.Slice: java.nio.ByteBuffer toByteBuffer()>();
v[0] = v;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: java.nio.ByteBuffer toByteBuffer()>();
v[1] = v;
v = virtualinvoke v.<java.nio.channels.FileChannel: long write(java.nio.ByteBuffer[])>(v);
v = v + v;
v.<org.iq.leveldb.table.TableBuilder: long position> = v;
virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: void reset()>();
return v;
catch java.io.IOException from label to label with label;
}
private static int maxCompressedLength(int)
{
int v, v, v, v;
v := @parameter: int;
v = 32 + v;
v = v / 6;
v = v + v;
return v;
}
public void finish() throws java.io.IOException
{
org.iq.leveldb.util.Slice v, v, v, v;
long v, v;
java.nio.ByteBuffer v;
org.iq.leveldb.table.BytewiseComparator v;
org.iq.leveldb.table.Footer v;
org.iq.leveldb.table.BlockHandle v, v, v;
org.iq.leveldb.table.UserComparator v;
int v, v;
org.iq.leveldb.table.BlockBuilder v, v, v;
boolean v, v, v;
org.iq.leveldb.table.TableBuilder v;
java.nio.channels.FileChannel v;
v := @this: org.iq.leveldb.table.TableBuilder;
v = v.<org.iq.leveldb.table.TableBuilder: boolean closed>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "table is finished");
specialinvoke v.<org.iq.leveldb.table.TableBuilder: void flush()>();
v.<org.iq.leveldb.table.TableBuilder: boolean closed> = 1;
v = new org.iq.leveldb.table.BlockBuilder;
v = v.<org.iq.leveldb.table.TableBuilder: int blockRestartInterval>;
v = new org.iq.leveldb.table.BytewiseComparator;
specialinvoke v.<org.iq.leveldb.table.BytewiseComparator: void <init>()>();
specialinvoke v.<org.iq.leveldb.table.BlockBuilder: void <init>(int,int,java.util.Comparator)>(256, v, v);
v = specialinvoke v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockHandle writeBlock(org.iq.leveldb.table.BlockBuilder)>(v);
v = v.<org.iq.leveldb.table.TableBuilder: boolean pendingIndexEntry>;
if v == 0 goto label;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.UserComparator userComparator>;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice lastKey>;
v = interfaceinvoke v.<org.iq.leveldb.table.UserComparator: org.iq.leveldb.util.Slice findShortSuccessor(org.iq.leveldb.util.Slice)>(v);
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockHandle pendingHandle>;
v = staticinvoke <org.iq.leveldb.table.BlockHandle: org.iq.leveldb.util.Slice writeBlockHandle(org.iq.leveldb.table.BlockHandle)>(v);
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder indexBlockBuilder>;
virtualinvoke v.<org.iq.leveldb.table.BlockBuilder: void add(org.iq.leveldb.util.Slice,org.iq.leveldb.util.Slice)>(v, v);
v.<org.iq.leveldb.table.TableBuilder: boolean pendingIndexEntry> = 0;
label:
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockBuilder indexBlockBuilder>;
v = specialinvoke v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.table.BlockHandle writeBlock(org.iq.leveldb.table.BlockBuilder)>(v);
v = new org.iq.leveldb.table.Footer;
specialinvoke v.<org.iq.leveldb.table.Footer: void <init>(org.iq.leveldb.table.BlockHandle,org.iq.leveldb.table.BlockHandle)>(v, v);
v = staticinvoke <org.iq.leveldb.table.Footer: org.iq.leveldb.util.Slice writeFooter(org.iq.leveldb.table.Footer)>(v);
v = v.<org.iq.leveldb.table.TableBuilder: long position>;
v = v.<org.iq.leveldb.table.TableBuilder: java.nio.channels.FileChannel fileChannel>;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: java.nio.ByteBuffer toByteBuffer()>();
v = virtualinvoke v.<java.nio.channels.FileChannel: int write(java.nio.ByteBuffer)>(v);
v = v + v;
v.<org.iq.leveldb.table.TableBuilder: long position> = v;
return;
}
public void abandon()
{
org.iq.leveldb.table.TableBuilder v;
boolean v, v;
v := @this: org.iq.leveldb.table.TableBuilder;
v = v.<org.iq.leveldb.table.TableBuilder: boolean closed>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
staticinvoke <com.google.common.base.Preconditions: void checkState(boolean,java.lang.Object)>(v, "table is finished");
v.<org.iq.leveldb.table.TableBuilder: boolean closed> = 1;
return;
}
public static int crc32c(org.iq.leveldb.util.Slice, org.iq.leveldb.CompressionType)
{
org.iq.leveldb.CompressionType v;
byte[] v;
org.iq.leveldb.util.Slice v;
org.iq.leveldb.util.PureJavaCrc32C v;
int v, v, v, v, v;
v := @parameter: org.iq.leveldb.util.Slice;
v := @parameter: org.iq.leveldb.CompressionType;
v = new org.iq.leveldb.util.PureJavaCrc32C;
specialinvoke v.<org.iq.leveldb.util.PureJavaCrc32C: void <init>()>();
v = virtualinvoke v.<org.iq.leveldb.util.Slice: byte[] getRawArray()>();
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int getRawOffset()>();
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
virtualinvoke v.<org.iq.leveldb.util.PureJavaCrc32C: void update(byte[],int,int)>(v, v, v);
v = virtualinvoke v.<org.iq.leveldb.CompressionType: int persistentId()>();
v = v & 255;
virtualinvoke v.<org.iq.leveldb.util.PureJavaCrc32C: void update(int)>(v);
v = virtualinvoke v.<org.iq.leveldb.util.PureJavaCrc32C: int getMaskedValue()>();
return v;
}
public void ensureCompressedOutputCapacity(int)
{
org.iq.leveldb.util.Slice v, v, v;
int v, v;
org.iq.leveldb.table.TableBuilder v;
v := @this: org.iq.leveldb.table.TableBuilder;
v := @parameter: int;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice compressedOutput>;
if v == null goto label;
v = v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice compressedOutput>;
v = virtualinvoke v.<org.iq.leveldb.util.Slice: int length()>();
if v <= v goto label;
return;
label:
v = staticinvoke <org.iq.leveldb.util.Slices: org.iq.leveldb.util.Slice allocate(int)>(v);
v.<org.iq.leveldb.table.TableBuilder: org.iq.leveldb.util.Slice compressedOutput> = v;
return;
}
static void <clinit>()
{
java.lang.Class v;
boolean v, v;
v = class "Lorg/iq80/leveldb/table/TableBuilder;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<org.iq.leveldb.table.TableBuilder: boolean $assertionsDisabled> = v;
return;
}
}