public class org.h2.mvstore.FreeSpaceBitSet
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.mvstore.FreeSpaceBitSet
super_class: java.lang.Object
{
private static final boolean DETAILED_INFO;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private final int firstFreeBlock;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int blockSize;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.BitSet set;
descriptor: Ljava/util/BitSet;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/h2/mvstore/FreeSpaceBitSet;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.h2.mvstore.FreeSpaceBitSet.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(int, int);
descriptor: (II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.util.BitSet
dup
invokespecial java.util.BitSet.<init>:()V
putfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
2: aload 0
iload 1
putfield org.h2.mvstore.FreeSpaceBitSet.firstFreeBlock:I
3: aload 0
iload 2
putfield org.h2.mvstore.FreeSpaceBitSet.blockSize:I
4: aload 0
invokevirtual org.h2.mvstore.FreeSpaceBitSet.clear:()V
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 6 1 firstFreeBlock I
0 6 2 blockSize I
MethodParameters:
Name Flags
firstFreeBlock
blockSize
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
invokevirtual java.util.BitSet.clear:()V
1: aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iconst_0
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.firstFreeBlock:I
invokevirtual java.util.BitSet.set:(II)V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
public boolean isUsed(long, int);
descriptor: (JI)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlock:(J)I
istore 4
start local 4 1: aload 0
iload 3
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlockCount:(I)I
istore 5
start local 5 2: iload 4
istore 6
start local 6 3: goto 7
4: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 6
invokevirtual java.util.BitSet.get:(I)Z
ifne 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
iload 4
iload 5
iadd
if_icmplt 4
end local 6 8: iconst_1
ireturn
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 9 1 pos J
0 9 3 length I
1 9 4 start I
2 9 5 blocks I
3 8 6 i I
MethodParameters:
Name Flags
pos
length
public boolean isFree(long, int);
descriptor: (JI)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=7, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlock:(J)I
istore 4
start local 4 1: aload 0
iload 3
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlockCount:(I)I
istore 5
start local 5 2: iload 4
istore 6
start local 6 3: goto 7
4: StackMap locals: int int int
StackMap stack:
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 6
invokevirtual java.util.BitSet.get:(I)Z
ifeq 6
5: iconst_0
ireturn
6: StackMap locals:
StackMap stack:
iinc 6 1
StackMap locals:
StackMap stack:
7: iload 6
iload 4
iload 5
iadd
if_icmplt 4
end local 6 8: iconst_1
ireturn
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 9 1 pos J
0 9 3 length I
1 9 4 start I
2 9 5 blocks I
3 8 6 i I
MethodParameters:
Name Flags
pos
length
public long allocate(int);
descriptor: (I)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_1
invokevirtual org.h2.mvstore.FreeSpaceBitSet.allocate:(IZ)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 1 1 length I
MethodParameters:
Name Flags
length
public long predictAllocation(int);
descriptor: (I)J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
iconst_0
invokevirtual org.h2.mvstore.FreeSpaceBitSet.allocate:(IZ)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 1 1 length I
MethodParameters:
Name Flags
length
private long allocate(int, boolean);
descriptor: (IZ)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlockCount:(I)I
istore 3
start local 3 1: iconst_0
istore 4
start local 4 2: StackMap locals: int int
StackMap stack:
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 4
invokevirtual java.util.BitSet.nextClearBit:(I)I
istore 5
start local 5 3: aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 5
iconst_1
iadd
invokevirtual java.util.BitSet.nextSetBit:(I)I
istore 6
start local 6 4: iload 6
iflt 5
iload 6
iload 5
isub
iload 3
if_icmplt 10
5: StackMap locals: int int
StackMap stack:
getstatic org.h2.mvstore.FreeSpaceBitSet.$assertionsDisabled:Z
ifne 7
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 5
invokevirtual java.util.BitSet.nextSetBit:(I)I
iconst_m1
if_icmpeq 7
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 5
invokevirtual java.util.BitSet.nextSetBit:(I)I
iload 5
iload 3
iadd
if_icmpge 7
new java.lang.AssertionError
dup
6: new java.lang.StringBuilder
dup
ldc "Double alloc: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 5
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 3
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
7: StackMap locals:
StackMap stack:
iload 2
ifeq 9
8: aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 5
iload 5
iload 3
iadd
invokevirtual java.util.BitSet.set:(II)V
9: StackMap locals:
StackMap stack:
aload 0
iload 5
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getPos:(I)J
lreturn
10: StackMap locals:
StackMap stack:
iload 6
istore 4
end local 6 end local 5 11: goto 2
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 12 1 length I
0 12 2 allocate Z
1 12 3 blocks I
2 12 4 i I
3 11 5 start I
4 11 6 end I
MethodParameters:
Name Flags
length
allocate
public void markUsed(long, int);
descriptor: (JI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlock:(J)I
istore 4
start local 4 1: aload 0
iload 3
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlockCount:(I)I
istore 5
start local 5 2: getstatic org.h2.mvstore.FreeSpaceBitSet.$assertionsDisabled:Z
ifne 4
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 4
invokevirtual java.util.BitSet.nextSetBit:(I)I
iconst_m1
if_icmpeq 4
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 4
invokevirtual java.util.BitSet.nextSetBit:(I)I
iload 4
iload 5
iadd
if_icmpge 4
new java.lang.AssertionError
dup
3: new java.lang.StringBuilder
dup
ldc "Double mark: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals: int int
StackMap stack:
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 4
iload 4
iload 5
iadd
invokevirtual java.util.BitSet.set:(II)V
5: return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 6 1 pos J
0 6 3 length I
1 6 4 start I
2 6 5 blocks I
MethodParameters:
Name Flags
pos
length
public void free(long, int);
descriptor: (JI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlock:(J)I
istore 4
start local 4 1: aload 0
iload 3
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getBlockCount:(I)I
istore 5
start local 5 2: getstatic org.h2.mvstore.FreeSpaceBitSet.$assertionsDisabled:Z
ifne 4
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 4
invokevirtual java.util.BitSet.nextClearBit:(I)I
iload 4
iload 5
iadd
if_icmpge 4
new java.lang.AssertionError
dup
3: new java.lang.StringBuilder
dup
ldc "Double free: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 4
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "/"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 5
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
4: StackMap locals: int int
StackMap stack:
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 4
iload 4
iload 5
iadd
invokevirtual java.util.BitSet.clear:(II)V
5: return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 6 1 pos J
0 6 3 length I
1 6 4 start I
2 6 5 blocks I
MethodParameters:
Name Flags
pos
length
private long getPos(int);
descriptor: (I)J
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: iload 1
i2l
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.blockSize:I
i2l
lmul
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 1 1 block I
MethodParameters:
Name Flags
block
private int getBlock(long);
descriptor: (J)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.blockSize:I
i2l
ldiv
l2i
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 1 1 pos J
MethodParameters:
Name Flags
pos
private int getBlockCount(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.blockSize:I
invokestatic org.h2.util.MathUtils.roundUpInt:(II)I
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.blockSize:I
idiv
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
0 1 1 length I
MethodParameters:
Name Flags
length
public int getFillRate();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
invokevirtual java.util.BitSet.cardinality:()I
istore 1
start local 1 1: iload 1
ifne 3
2: iconst_0
ireturn
3: StackMap locals: int
StackMap stack:
iconst_1
ldc 100
iload 1
i2l
lmul
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
invokevirtual java.util.BitSet.length:()I
i2l
ldiv
l2i
invokestatic java.lang.Math.max:(II)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
1 4 1 cardinality I
public long getFirstFree();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iconst_0
invokevirtual java.util.BitSet.nextClearBit:(I)I
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getPos:(I)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
public long getLastFree();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
invokevirtual java.util.BitSet.size:()I
iconst_1
isub
invokevirtual java.util.BitSet.previousSetBit:(I)I
iconst_1
iadd
invokevirtual org.h2.mvstore.FreeSpaceBitSet.getPos:(I)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 1
start local 1 1: aload 1
bipush 91
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
2: iconst_0
istore 2
start local 2 3: StackMap locals: java.lang.StringBuilder int
StackMap stack:
iload 2
ifle 5
4: aload 1
ldc ", "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 2
invokevirtual java.util.BitSet.nextClearBit:(I)I
istore 3
start local 3 6: aload 1
iload 3
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
bipush 45
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
7: aload 0
getfield org.h2.mvstore.FreeSpaceBitSet.set:Ljava/util/BitSet;
iload 3
iconst_1
iadd
invokevirtual java.util.BitSet.nextSetBit:(I)I
istore 4
start local 4 8: iload 4
ifge 10
9: goto 13
10: StackMap locals: int int
StackMap stack:
aload 1
iload 4
iconst_1
isub
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
pop
11: iload 4
iconst_1
iadd
istore 2
end local 4 end local 3 12: goto 3
end local 2 13: StackMap locals:
StackMap stack:
aload 1
bipush 93
invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
pop
14: aload 1
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/mvstore/FreeSpaceBitSet;
1 15 1 buff Ljava/lang/StringBuilder;
3 13 2 i I
6 12 3 start I
8 12 4 end I
}
SourceFile: "FreeSpaceBitSet.java"