public class org.h2.mvstore.MVMap<K, V> extends java.util.AbstractMap<K, V> implements java.util.concurrent.ConcurrentMap<K, V>
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.h2.mvstore.MVMap
super_class: java.util.AbstractMap
{
public final org.h2.mvstore.MVStore store;
descriptor: Lorg/h2/mvstore/MVStore;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
private final java.util.concurrent.atomic.AtomicReference<org.h2.mvstore.RootReference> root;
descriptor: Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicReference<Lorg/h2/mvstore/RootReference;>;
private final int id;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final long createVersion;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.h2.mvstore.type.DataType keyType;
descriptor: Lorg/h2/mvstore/type/DataType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.h2.mvstore.type.DataType valueType;
descriptor: Lorg/h2/mvstore/type/DataType;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int keysPerPage;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean singleWriter;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final K[] keysBuffer;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [TK;
private final V[] valuesBuffer;
descriptor: [Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: [TV;
private final java.lang.Object lock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private volatile boolean notificationRequested;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile boolean closed;
descriptor: Z
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private boolean readOnly;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isVolatile;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
static final long INITIAL_VERSION;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: -1
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$org$h2$mvstore$MVMap$Decision;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/h2/mvstore/MVMap;
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.MVMap.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
protected void <init>(java.util.Map<java.lang.String, java.lang.Object>);
descriptor: (Ljava/util/Map;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=11, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
ldc "store"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.mvstore.MVStore
1: aload 1
ldc "key"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.mvstore.type.DataType
2: aload 1
ldc "val"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.mvstore.type.DataType
3: aload 1
ldc "id"
iconst_0
invokestatic org.h2.mvstore.DataUtils.readHexInt:(Ljava/util/Map;Ljava/lang/String;I)I
4: aload 1
ldc "createVersion"
lconst_0
invokestatic org.h2.mvstore.DataUtils.readHexLong:(Ljava/util/Map;Ljava/lang/String;J)J
5: new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
6: aload 1
ldc "store"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.h2.mvstore.MVStore
invokevirtual org.h2.mvstore.MVStore.getKeysPerPage:()I
7: aload 1
ldc "singleWriter"
invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
ifeq 8
aload 1
ldc "singleWriter"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Boolean
invokevirtual java.lang.Boolean.booleanValue:()Z
ifeq 8
iconst_1
goto 9
StackMap locals: uninitialized-this java.util.Map
StackMap stack: uninitialized-this org.h2.mvstore.MVStore org.h2.mvstore.type.DataType org.h2.mvstore.type.DataType int long java.util.concurrent.atomic.AtomicReference int
8: iconst_0
StackMap locals: uninitialized-this java.util.Map
StackMap stack: uninitialized-this org.h2.mvstore.MVStore org.h2.mvstore.type.DataType org.h2.mvstore.type.DataType int long java.util.concurrent.atomic.AtomicReference int int
9: invokespecial org.h2.mvstore.MVMap.<init>:(Lorg/h2/mvstore/MVStore;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;IJLjava/util/concurrent/atomic/AtomicReference;IZ)V
10: aload 0
aload 0
invokevirtual org.h2.mvstore.MVMap.createEmptyLeaf:()Lorg/h2/mvstore/Page;
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getCurrentVersion:()J
invokevirtual org.h2.mvstore.MVMap.setInitialRoot:(Lorg/h2/mvstore/Page;J)V
11: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 12 1 config Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
MethodParameters:
Name Flags
config
protected void <init>(org.h2.mvstore.MVMap<K, V>);
descriptor: (Lorg/h2/mvstore/MVMap;)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=10, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 1
getfield org.h2.mvstore.MVMap.keyType:Lorg/h2/mvstore/type/DataType;
aload 1
getfield org.h2.mvstore.MVMap.valueType:Lorg/h2/mvstore/type/DataType;
aload 1
getfield org.h2.mvstore.MVMap.id:I
aload 1
getfield org.h2.mvstore.MVMap.createVersion:J
1: new java.util.concurrent.atomic.AtomicReference
dup
aload 1
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.h2.mvstore.RootReference
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
aload 1
getfield org.h2.mvstore.MVMap.keysPerPage:I
aload 1
getfield org.h2.mvstore.MVMap.singleWriter:Z
invokespecial org.h2.mvstore.MVMap.<init>:(Lorg/h2/mvstore/MVStore;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;IJLjava/util/concurrent/atomic/AtomicReference;IZ)V
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 3 1 source Lorg/h2/mvstore/MVMap<TK;TV;>;
Signature: (Lorg/h2/mvstore/MVMap<TK;TV;>;)V
MethodParameters:
Name Flags
source
void <init>(org.h2.mvstore.MVStore);
descriptor: (Lorg/h2/mvstore/MVStore;)V
flags: (0x0000)
Code:
stack=10, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
getstatic org.h2.mvstore.type.StringDataType.INSTANCE:Lorg/h2/mvstore/type/StringDataType;
getstatic org.h2.mvstore.type.StringDataType.INSTANCE:Lorg/h2/mvstore/type/StringDataType;
iconst_0
lconst_0
new java.util.concurrent.atomic.AtomicReference
dup
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:()V
1: aload 1
invokevirtual org.h2.mvstore.MVStore.getKeysPerPage:()I
iconst_0
invokespecial org.h2.mvstore.MVMap.<init>:(Lorg/h2/mvstore/MVStore;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;IJLjava/util/concurrent/atomic/AtomicReference;IZ)V
2: aload 0
aload 0
invokevirtual org.h2.mvstore.MVMap.createEmptyLeaf:()Lorg/h2/mvstore/Page;
aload 1
invokevirtual org.h2.mvstore.MVStore.getCurrentVersion:()J
invokevirtual org.h2.mvstore.MVMap.setInitialRoot:(Lorg/h2/mvstore/Page;J)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 4 1 store Lorg/h2/mvstore/MVStore;
MethodParameters:
Name Flags
store
private void <init>(org.h2.mvstore.MVStore, org.h2.mvstore.type.DataType, org.h2.mvstore.type.DataType, int, long, java.util.concurrent.atomic.AtomicReference<org.h2.mvstore.RootReference>, int, );
descriptor: (Lorg/h2/mvstore/MVStore;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;IJLjava/util/concurrent/atomic/AtomicReference;IZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=10, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 7 start local 8 start local 9 0: aload 0
invokespecial java.util.AbstractMap.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield org.h2.mvstore.MVMap.lock:Ljava/lang/Object;
2: aload 0
aload 1
putfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
3: aload 0
iload 4
putfield org.h2.mvstore.MVMap.id:I
4: aload 0
lload 5
putfield org.h2.mvstore.MVMap.createVersion:J
5: aload 0
aload 2
putfield org.h2.mvstore.MVMap.keyType:Lorg/h2/mvstore/type/DataType;
6: aload 0
aload 3
putfield org.h2.mvstore.MVMap.valueType:Lorg/h2/mvstore/type/DataType;
7: aload 0
aload 7
putfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
8: aload 0
iload 8
putfield org.h2.mvstore.MVMap.keysPerPage:I
9: aload 0
iload 9
ifeq 10
iload 8
anewarray java.lang.Object
goto 11
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.MVStore org.h2.mvstore.type.DataType org.h2.mvstore.type.DataType int long java.util.concurrent.atomic.AtomicReference int int
StackMap stack: org.h2.mvstore.MVMap
10: aconst_null
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.MVStore org.h2.mvstore.type.DataType org.h2.mvstore.type.DataType int long java.util.concurrent.atomic.AtomicReference int int
StackMap stack: org.h2.mvstore.MVMap java.lang.Object[]
11: putfield org.h2.mvstore.MVMap.keysBuffer:[Ljava/lang/Object;
12: aload 0
iload 9
ifeq 13
iload 8
anewarray java.lang.Object
goto 14
StackMap locals:
StackMap stack: org.h2.mvstore.MVMap
13: aconst_null
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.MVStore org.h2.mvstore.type.DataType org.h2.mvstore.type.DataType int long java.util.concurrent.atomic.AtomicReference int int
StackMap stack: org.h2.mvstore.MVMap java.lang.Object[]
14: putfield org.h2.mvstore.MVMap.valuesBuffer:[Ljava/lang/Object;
15: aload 0
iload 9
putfield org.h2.mvstore.MVMap.singleWriter:Z
16: return
end local 9 end local 8 end local 7 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 17 1 store Lorg/h2/mvstore/MVStore;
0 17 2 keyType Lorg/h2/mvstore/type/DataType;
0 17 3 valueType Lorg/h2/mvstore/type/DataType;
0 17 4 id I
0 17 5 createVersion J
0 17 7 root Ljava/util/concurrent/atomic/AtomicReference<Lorg/h2/mvstore/RootReference;>;
0 17 8 keysPerPage I
0 17 9 singleWriter Z
Signature: (Lorg/h2/mvstore/MVStore;Lorg/h2/mvstore/type/DataType;Lorg/h2/mvstore/type/DataType;IJLjava/util/concurrent/atomic/AtomicReference<Lorg/h2/mvstore/RootReference;>;IZ)V
MethodParameters:
Name Flags
store
keyType
valueType
id
createVersion
root
keysPerPage
singleWriter
protected org.h2.mvstore.MVMap<K, V> cloneIt();
descriptor: ()Lorg/h2/mvstore/MVMap;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.h2.mvstore.MVMap
dup
aload 0
invokespecial org.h2.mvstore.MVMap.<init>:(Lorg/h2/mvstore/MVMap;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
Signature: ()Lorg/h2/mvstore/MVMap<TK;TV;>;
static java.lang.String getMapRootKey(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "root."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 mapId I
MethodParameters:
Name Flags
mapId
static java.lang.String getMapKey(int);
descriptor: (I)Ljava/lang/String;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.StringBuilder
dup
ldc "map."
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 mapId I
MethodParameters:
Name Flags
mapId
public V put(K, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: ldc "The value may not be null"
iconst_0
anewarray java.lang.Object
invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
3: aload 0
aload 1
aload 2
getstatic org.h2.mvstore.MVMap$DecisionMaker.PUT:Lorg/h2/mvstore/MVMap$DecisionMaker;
invokevirtual org.h2.mvstore.MVMap.operate:(Ljava/lang/Object;Ljava/lang/Object;Lorg/h2/mvstore/MVMap$DecisionMaker;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 4 1 key TK;
0 4 2 value TV;
Signature: (TK;TV;)TV;
MethodParameters:
Name Flags
key
value
public final K firstKey();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
invokevirtual org.h2.mvstore.MVMap.getFirstLast:(Z)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
Signature: ()TK;
public final K lastKey();
descriptor: ()Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
invokevirtual org.h2.mvstore.MVMap.getFirstLast:(Z)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
Signature: ()TK;
public final K getKey();
descriptor: (J)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=10, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
iflt 1
lload 1
aload 0
invokevirtual org.h2.mvstore.MVMap.sizeAsLong:()J
lcmp
iflt 2
1: StackMap locals:
StackMap stack:
aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
astore 3
start local 3 3: lconst_0
lstore 4
start local 4 4: StackMap locals: org.h2.mvstore.Page long
StackMap stack:
aload 3
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 9
5: lload 1
lload 4
aload 3
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
i2l
ladd
lcmp
iflt 7
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 3
lload 1
lload 4
lsub
l2i
invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
astore 6
start local 6 8: aload 6
areturn
end local 6 9: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 10: aload 0
aload 3
invokevirtual org.h2.mvstore.MVMap.getChildPageCount:(Lorg/h2/mvstore/Page;)I
istore 7
start local 7 11: goto 17
12: StackMap locals: int int
StackMap stack:
aload 3
iload 6
invokevirtual org.h2.mvstore.Page.getCounts:(I)J
lstore 8
start local 8 13: lload 1
lload 8
lload 4
ladd
lcmp
ifge 15
14: goto 18
15: StackMap locals: long
StackMap stack:
lload 4
lload 8
ladd
lstore 4
end local 8 16: iinc 6 1
StackMap locals:
StackMap stack:
17: iload 6
iload 7
if_icmplt 12
18: StackMap locals:
StackMap stack:
iload 6
iload 7
if_icmpne 20
19: aconst_null
areturn
20: StackMap locals:
StackMap stack:
aload 3
iload 6
invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
astore 3
end local 7 end local 6 21: goto 4
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 22 1 index J
3 22 3 p Lorg/h2/mvstore/Page;
4 22 4 offset J
8 9 6 key TK;
10 21 6 i I
11 21 7 size I
13 16 8 c J
Signature: (J)TK;
MethodParameters:
Name Flags
index
public final java.util.List<K> keyList();
descriptor: ()Ljava/util/List;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=1, args_size=1
start local 0 0: new org.h2.mvstore.MVMap$1
dup
aload 0
invokespecial org.h2.mvstore.MVMap$1.<init>:(Lorg/h2/mvstore/MVMap;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
Signature: ()Ljava/util/List<TK;>;
public final long getKeyIndex();
descriptor: (Ljava/lang/Object;)J
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
astore 2
start local 2 1: aload 2
invokevirtual org.h2.mvstore.Page.getTotalCount:()J
lconst_0
lcmp
ifne 3
2: ldc -1
lreturn
3: StackMap locals: org.h2.mvstore.Page
StackMap stack:
lconst_0
lstore 3
start local 3 4: StackMap locals: long
StackMap stack:
aload 2
aload 1
invokevirtual org.h2.mvstore.Page.binarySearch:(Ljava/lang/Object;)I
istore 5
start local 5 5: aload 2
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 9
6: iload 5
ifge 8
7: lload 3
lneg
lstore 3
8: StackMap locals: int
StackMap stack:
lload 3
iload 5
i2l
ladd
lreturn
9: StackMap locals:
StackMap stack:
iload 5
iinc 5 1
ifge 11
10: iload 5
ineg
istore 5
11: StackMap locals:
StackMap stack:
iconst_0
istore 6
start local 6 12: goto 15
13: StackMap locals: int
StackMap stack:
lload 3
aload 2
iload 6
invokevirtual org.h2.mvstore.Page.getCounts:(I)J
ladd
lstore 3
14: iinc 6 1
StackMap locals:
StackMap stack:
15: iload 6
iload 5
if_icmplt 13
end local 6 16: aload 2
iload 5
invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
astore 2
end local 5 17: goto 4
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 18 1 key TK;
1 18 2 p Lorg/h2/mvstore/Page;
4 18 3 offset J
5 17 5 x I
12 16 6 i I
Signature: (TK;)J
MethodParameters:
Name Flags
key
private K getFirstLast();
descriptor: (Z)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
astore 2
start local 2 1: aload 2
invokevirtual org.h2.mvstore.Page.getTotalCount:()J
lconst_0
lcmp
ifne 3
2: aconst_null
areturn
3: StackMap locals: org.h2.mvstore.Page
StackMap stack:
aload 2
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 7
4: aload 2
iload 1
ifeq 5
iconst_0
goto 6
StackMap locals:
StackMap stack: org.h2.mvstore.Page
5: aload 2
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
iconst_1
isub
StackMap locals: org.h2.mvstore.MVMap int org.h2.mvstore.Page
StackMap stack: org.h2.mvstore.Page int
6: invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
areturn
7: StackMap locals:
StackMap stack:
aload 2
iload 1
ifeq 8
iconst_0
goto 9
StackMap locals:
StackMap stack: org.h2.mvstore.Page
8: aload 0
aload 2
invokevirtual org.h2.mvstore.MVMap.getChildPageCount:(Lorg/h2/mvstore/Page;)I
iconst_1
isub
StackMap locals: org.h2.mvstore.MVMap int org.h2.mvstore.Page
StackMap stack: org.h2.mvstore.Page int
9: invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
astore 2
10: goto 3
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 11 1 first Z
1 11 2 p Lorg/h2/mvstore/Page;
Signature: (Z)TK;
MethodParameters:
Name Flags
first
public final K higherKey();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
iconst_1
invokevirtual org.h2.mvstore.MVMap.getMinMax:(Ljava/lang/Object;ZZ)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key TK;
Signature: (TK;)TK;
MethodParameters:
Name Flags
key
public final K ceilingKey();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
iconst_0
invokevirtual org.h2.mvstore.MVMap.getMinMax:(Ljava/lang/Object;ZZ)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key TK;
Signature: (TK;)TK;
MethodParameters:
Name Flags
key
public final K floorKey();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
iconst_0
invokevirtual org.h2.mvstore.MVMap.getMinMax:(Ljava/lang/Object;ZZ)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key TK;
Signature: (TK;)TK;
MethodParameters:
Name Flags
key
public final K lowerKey();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
iconst_1
invokevirtual org.h2.mvstore.MVMap.getMinMax:(Ljava/lang/Object;ZZ)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key TK;
Signature: (TK;)TK;
MethodParameters:
Name Flags
key
private K getMinMax(K, boolean, );
descriptor: (Ljava/lang/Object;ZZ)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
aload 1
iload 2
iload 3
invokevirtual org.h2.mvstore.MVMap.getMinMax:(Lorg/h2/mvstore/Page;Ljava/lang/Object;ZZ)Ljava/lang/Object;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key TK;
0 1 2 min Z
0 1 3 excluding Z
Signature: (TK;ZZ)TK;
MethodParameters:
Name Flags
key
min
excluding
private K getMinMax(org.h2.mvstore.Page, K, boolean, );
descriptor: (Lorg/h2/mvstore/Page;Ljava/lang/Object;ZZ)Ljava/lang/Object;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
aload 2
invokevirtual org.h2.mvstore.Page.binarySearch:(Ljava/lang/Object;)I
istore 5
start local 5 1: aload 1
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 14
2: iload 5
ifge 7
3: iload 5
ineg
iload 3
ifeq 4
iconst_2
goto 5
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page java.lang.Object int int int
StackMap stack: int
4: iconst_1
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page java.lang.Object int int int
StackMap stack: int int
5: isub
istore 5
6: goto 11
StackMap locals:
StackMap stack:
7: iload 4
ifeq 11
8: iload 5
iload 3
ifeq 9
iconst_m1
goto 10
StackMap locals:
StackMap stack: int
9: iconst_1
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page java.lang.Object int int int
StackMap stack: int int
10: iadd
istore 5
11: StackMap locals:
StackMap stack:
iload 5
iflt 12
iload 5
aload 1
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
if_icmplt 13
12: StackMap locals:
StackMap stack:
aconst_null
areturn
13: StackMap locals:
StackMap stack:
aload 1
iload 5
invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
areturn
14: StackMap locals:
StackMap stack:
iload 5
iinc 5 1
ifge 16
15: iload 5
ineg
istore 5
16: StackMap locals:
StackMap stack:
iload 5
iflt 17
iload 5
aload 0
aload 1
invokevirtual org.h2.mvstore.MVMap.getChildPageCount:(Lorg/h2/mvstore/Page;)I
if_icmplt 18
17: StackMap locals:
StackMap stack:
aconst_null
areturn
18: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 5
invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
aload 2
iload 3
iload 4
invokevirtual org.h2.mvstore.MVMap.getMinMax:(Lorg/h2/mvstore/Page;Ljava/lang/Object;ZZ)Ljava/lang/Object;
astore 6
start local 6 19: aload 6
ifnull 21
20: aload 6
areturn
21: StackMap locals: java.lang.Object
StackMap stack:
iload 5
iload 3
ifeq 22
iconst_m1
goto 23
StackMap locals:
StackMap stack: int
22: iconst_1
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page java.lang.Object int int int java.lang.Object
StackMap stack: int int
23: iadd
istore 5
end local 6 24: goto 16
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 25 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 25 1 p Lorg/h2/mvstore/Page;
0 25 2 key TK;
0 25 3 min Z
0 25 4 excluding Z
1 25 5 x I
19 24 6 k TK;
Signature: (Lorg/h2/mvstore/Page;TK;ZZ)TK;
MethodParameters:
Name Flags
p
key
min
excluding
public final V get();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
aload 1
invokevirtual org.h2.mvstore.MVMap.get:(Lorg/h2/mvstore/Page;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key Ljava/lang/Object;
Signature: (Ljava/lang/Object;)TV;
MethodParameters:
Name Flags
key
public V get(org.h2.mvstore.Page, );
descriptor: (Lorg/h2/mvstore/Page;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokestatic org.h2.mvstore.Page.get:(Lorg/h2/mvstore/Page;Ljava/lang/Object;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 p Lorg/h2/mvstore/Page;
0 1 2 key Ljava/lang/Object;
Signature: (Lorg/h2/mvstore/Page;Ljava/lang/Object;)TV;
MethodParameters:
Name Flags
p
key
public final boolean containsKey(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnull 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 2 1 key Ljava/lang/Object;
MethodParameters:
Name Flags
key
public void clear();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.createEmptyLeaf:()Lorg/h2/mvstore/Page;
astore 2
start local 2 1: iconst_0
istore 3
start local 3 2: StackMap locals: org.h2.mvstore.MVMap top org.h2.mvstore.Page int
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 1
start local 1 3: aload 0
aload 1
aload 2
iinc 3 1
iload 3
invokevirtual org.h2.mvstore.MVMap.updateRoot:(Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/Page;I)Z
ifeq 2
4: aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
invokevirtual org.h2.mvstore.Page.removeAllRecursive:()V
5: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
3 6 1 rootReference Lorg/h2/mvstore/RootReference;
1 6 2 emptyRootPage Lorg/h2/mvstore/Page;
2 6 3 attempt I
final void close();
descriptor: ()V
flags: (0x0010) ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.h2.mvstore.MVMap.closed:Z
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public final boolean isClosed();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.closed:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public V remove();
descriptor: (Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
getstatic org.h2.mvstore.MVMap$DecisionMaker.REMOVE:Lorg/h2/mvstore/MVMap$DecisionMaker;
invokevirtual org.h2.mvstore.MVMap.operate:(Ljava/lang/Object;Ljava/lang/Object;Lorg/h2/mvstore/MVMap$DecisionMaker;)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key Ljava/lang/Object;
Signature: (Ljava/lang/Object;)TV;
MethodParameters:
Name Flags
key
public final V putIfAbsent(K, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic org.h2.mvstore.MVMap$DecisionMaker.IF_ABSENT:Lorg/h2/mvstore/MVMap$DecisionMaker;
invokevirtual org.h2.mvstore.MVMap.operate:(Ljava/lang/Object;Ljava/lang/Object;Lorg/h2/mvstore/MVMap$DecisionMaker;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key TK;
0 1 2 value TV;
Signature: (TK;TV;)TV;
MethodParameters:
Name Flags
key
value
public boolean remove(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: new org.h2.mvstore.MVMap$EqualsDecisionMaker
dup
aload 0
getfield org.h2.mvstore.MVMap.valueType:Lorg/h2/mvstore/type/DataType;
aload 2
invokespecial org.h2.mvstore.MVMap$EqualsDecisionMaker.<init>:(Lorg/h2/mvstore/type/DataType;Ljava/lang/Object;)V
astore 3
start local 3 1: aload 0
aload 1
aconst_null
aload 3
invokevirtual org.h2.mvstore.MVMap.operate:(Ljava/lang/Object;Ljava/lang/Object;Lorg/h2/mvstore/MVMap$DecisionMaker;)Ljava/lang/Object;
pop
2: aload 3
invokevirtual org.h2.mvstore.MVMap$EqualsDecisionMaker.getDecision:()Lorg/h2/mvstore/MVMap$Decision;
getstatic org.h2.mvstore.MVMap$Decision.ABORT:Lorg/h2/mvstore/MVMap$Decision;
if_acmpeq 3
iconst_1
ireturn
StackMap locals: org.h2.mvstore.MVMap$EqualsDecisionMaker
StackMap stack:
3: iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 4 1 key Ljava/lang/Object;
0 4 2 value Ljava/lang/Object;
1 4 3 decisionMaker Lorg/h2/mvstore/MVMap$EqualsDecisionMaker<TV;>;
MethodParameters:
Name Flags
key
value
static boolean areValuesEqual(org.h2.mvstore.type.DataType, java.lang.Object, java.lang.Object);
descriptor: (Lorg/h2/mvstore/type/DataType;Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
if_acmpeq 3
1: aload 1
ifnull 2
aload 2
ifnull 2
aload 0
aload 1
aload 2
invokeinterface org.h2.mvstore.type.DataType.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ifeq 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 datatype Lorg/h2/mvstore/type/DataType;
0 4 1 a Ljava/lang/Object;
0 4 2 b Ljava/lang/Object;
MethodParameters:
Name Flags
datatype
a
b
public final boolean replace(K, V, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new org.h2.mvstore.MVMap$EqualsDecisionMaker
dup
aload 0
getfield org.h2.mvstore.MVMap.valueType:Lorg/h2/mvstore/type/DataType;
aload 2
invokespecial org.h2.mvstore.MVMap$EqualsDecisionMaker.<init>:(Lorg/h2/mvstore/type/DataType;Ljava/lang/Object;)V
astore 4
start local 4 1: aload 0
aload 1
aload 3
aload 4
invokevirtual org.h2.mvstore.MVMap.operate:(Ljava/lang/Object;Ljava/lang/Object;Lorg/h2/mvstore/MVMap$DecisionMaker;)Ljava/lang/Object;
astore 5
start local 5 2: aload 4
invokevirtual org.h2.mvstore.MVMap$EqualsDecisionMaker.getDecision:()Lorg/h2/mvstore/MVMap$Decision;
getstatic org.h2.mvstore.MVMap$Decision.ABORT:Lorg/h2/mvstore/MVMap$Decision;
if_acmpeq 3
iconst_1
goto 4
StackMap locals: org.h2.mvstore.MVMap$EqualsDecisionMaker java.lang.Object
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 6
start local 6 5: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 6
iload 6
ifeq 6
aload 0
getfield org.h2.mvstore.MVMap.valueType:Lorg/h2/mvstore/type/DataType;
aload 2
aload 5
invokestatic org.h2.mvstore.MVMap.areValuesEqual:(Lorg/h2/mvstore/type/DataType;Ljava/lang/Object;Ljava/lang/Object;)Z
ifne 6
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
aload 2
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " != "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 5
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
6: StackMap locals: int
StackMap stack:
iload 6
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 7 1 key TK;
0 7 2 oldValue TV;
0 7 3 newValue TV;
1 7 4 decisionMaker Lorg/h2/mvstore/MVMap$EqualsDecisionMaker<TV;>;
2 7 5 result TV;
5 7 6 res Z
Signature: (TK;TV;TV;)Z
MethodParameters:
Name Flags
key
oldValue
newValue
public final V replace(K, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
aload 2
getstatic org.h2.mvstore.MVMap$DecisionMaker.IF_PRESENT:Lorg/h2/mvstore/MVMap$DecisionMaker;
invokevirtual org.h2.mvstore.MVMap.operate:(Ljava/lang/Object;Ljava/lang/Object;Lorg/h2/mvstore/MVMap$DecisionMaker;)Ljava/lang/Object;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 key TK;
0 1 2 value TV;
Signature: (TK;TV;)TV;
MethodParameters:
Name Flags
key
value
final int compare(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)I
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.MVMap.keyType:Lorg/h2/mvstore/type/DataType;
aload 1
aload 2
invokeinterface org.h2.mvstore.type.DataType.compare:(Ljava/lang/Object;Ljava/lang/Object;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 a Ljava/lang/Object;
0 1 2 b Ljava/lang/Object;
MethodParameters:
Name Flags
a
b
public final org.h2.mvstore.type.DataType getKeyType();
descriptor: ()Lorg/h2/mvstore/type/DataType;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.keyType:Lorg/h2/mvstore/type/DataType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public final org.h2.mvstore.type.DataType getValueType();
descriptor: ()Lorg/h2/mvstore/type/DataType;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.valueType:Lorg/h2/mvstore/type/DataType;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
final org.h2.mvstore.Page readPage(long);
descriptor: (J)Lorg/h2/mvstore/Page;
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 0
lload 1
invokevirtual org.h2.mvstore.MVStore.readPage:(Lorg/h2/mvstore/MVMap;J)Lorg/h2/mvstore/Page;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 pos J
MethodParameters:
Name Flags
pos
final void setRootPos(long, long);
descriptor: (JJ)V
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.h2.mvstore.MVMap.readOrCreateRootPage:(J)Lorg/h2/mvstore/Page;
astore 5
start local 5 1: aload 0
aload 5
lload 3
invokevirtual org.h2.mvstore.MVMap.setInitialRoot:(Lorg/h2/mvstore/Page;J)V
2: aload 0
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getCurrentVersion:()J
invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
pop
3: return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 4 1 rootPos J
0 4 3 version J
1 4 5 root Lorg/h2/mvstore/Page;
MethodParameters:
Name Flags
rootPos
version
private org.h2.mvstore.Page readOrCreateRootPage(long);
descriptor: (J)Lorg/h2/mvstore/Page;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: lload 1
lconst_0
lcmp
ifne 1
aload 0
invokevirtual org.h2.mvstore.MVMap.createEmptyLeaf:()Lorg/h2/mvstore/Page;
goto 2
StackMap locals:
StackMap stack:
1: aload 0
lload 1
invokevirtual org.h2.mvstore.MVMap.readPage:(J)Lorg/h2/mvstore/Page;
StackMap locals:
StackMap stack: org.h2.mvstore.Page
2: astore 3
start local 3 3: aload 3
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 4 1 rootPos J
3 4 3 root Lorg/h2/mvstore/Page;
MethodParameters:
Name Flags
rootPos
public final java.util.Iterator<K> keyIterator(K);
descriptor: (Ljava/lang/Object;)Ljava/util/Iterator;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.h2.mvstore.Cursor
dup
aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
aload 1
invokespecial org.h2.mvstore.Cursor.<init>:(Lorg/h2/mvstore/Page;Ljava/lang/Object;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 from TK;
Signature: (TK;)Ljava/util/Iterator<TK;>;
MethodParameters:
Name Flags
from
final void rewrite(java.util.Set<java.lang.Integer>);
descriptor: (Ljava/util/Set;)V
flags: (0x0010) ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
aload 1
invokevirtual org.h2.mvstore.MVMap.rewrite:(Lorg/h2/mvstore/Page;Ljava/util/Set;)I
pop
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 2 1 set Ljava/util/Set<Ljava/lang/Integer;>;
Signature: (Ljava/util/Set<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
set
private int rewrite(org.h2.mvstore.Page, java.util.Set<java.lang.Integer>);
descriptor: (Lorg/h2/mvstore/Page;Ljava/util/Set;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 9
1: aload 1
invokevirtual org.h2.mvstore.Page.getPos:()J
lstore 3
start local 3 2: lload 3
invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
istore 5
start local 5 3: aload 2
iload 5
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals: long int
StackMap stack:
getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 6
aload 1
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
ifgt 6
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.mvstore.MVMap.rewritePage:(Lorg/h2/mvstore/Page;)Z
ifeq 7
iconst_0
goto 8
StackMap locals:
StackMap stack:
7: iconst_1
StackMap locals:
StackMap stack: int
8: ireturn
end local 5 end local 3 9: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 10: iconst_0
istore 4
start local 4 11: goto 19
12: StackMap locals: int int
StackMap stack:
aload 1
iload 4
invokevirtual org.h2.mvstore.Page.getChildPagePos:(I)J
lstore 5
start local 5 13: lload 5
lconst_0
lcmp
ifeq 17
lload 5
invokestatic org.h2.mvstore.DataUtils.getPageType:(J)I
ifne 17
14: lload 5
invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
istore 7
start local 7 15: aload 2
iload 7
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifne 17
16: goto 18
end local 7 17: StackMap locals: long
StackMap stack:
iload 3
aload 0
aload 1
iload 4
invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
aload 2
invokevirtual org.h2.mvstore.MVMap.rewrite:(Lorg/h2/mvstore/Page;Ljava/util/Set;)I
iadd
istore 3
end local 5 18: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
19: iload 4
aload 0
aload 1
invokevirtual org.h2.mvstore.MVMap.getChildPageCount:(Lorg/h2/mvstore/Page;)I
if_icmplt 12
end local 4 20: iload 3
ifne 31
21: aload 1
invokevirtual org.h2.mvstore.Page.getPos:()J
lstore 4
start local 4 22: lload 4
invokestatic org.h2.mvstore.DataUtils.getPageChunkId:(J)I
istore 6
start local 6 23: aload 2
iload 6
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Set.contains:(Ljava/lang/Object;)Z
ifeq 31
24: aload 1
astore 7
start local 7 25: goto 27
26: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page java.util.Set int long int org.h2.mvstore.Page
StackMap stack:
aload 7
iconst_0
invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
astore 7
27: StackMap locals:
StackMap stack:
aload 7
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 26
28: aload 0
aload 7
invokevirtual org.h2.mvstore.MVMap.rewritePage:(Lorg/h2/mvstore/Page;)Z
ifeq 30
29: iconst_0
ireturn
30: StackMap locals:
StackMap stack:
iinc 3 1
end local 7 end local 6 end local 4 31: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 32 1 p Lorg/h2/mvstore/Page;
0 32 2 set Ljava/util/Set<Ljava/lang/Integer;>;
2 9 3 pos J
3 9 5 chunkId I
10 32 3 writtenPageCount I
11 20 4 i I
13 18 5 childPos J
15 17 7 chunkId I
22 31 4 pos J
23 31 6 chunkId I
25 31 7 p2 Lorg/h2/mvstore/Page;
Signature: (Lorg/h2/mvstore/Page;Ljava/util/Set<Ljava/lang/Integer;>;)I
MethodParameters:
Name Flags
p
set
private boolean rewritePage(org.h2.mvstore.Page);
descriptor: (Lorg/h2/mvstore/Page;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 1
iconst_0
invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
astore 2
start local 2 1: aload 0
aload 2
invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 3
start local 3 2: aload 3
ifnull 6
3: aload 0
invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
ifeq 5
4: iconst_1
ireturn
5: StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0
aload 2
aload 3
aload 3
invokevirtual org.h2.mvstore.MVMap.replace:(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
pop
6: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 7 1 p Lorg/h2/mvstore/Page;
1 7 2 key TK;
2 7 3 value TV;
MethodParameters:
Name Flags
p
public final org.h2.mvstore.Cursor<K, V> cursor(K);
descriptor: (Ljava/lang/Object;)Lorg/h2/mvstore/Cursor;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new org.h2.mvstore.Cursor
dup
aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
aload 1
invokespecial org.h2.mvstore.Cursor.<init>:(Lorg/h2/mvstore/Page;Ljava/lang/Object;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 from TK;
Signature: (TK;)Lorg/h2/mvstore/Cursor<TK;TV;>;
MethodParameters:
Name Flags
from
public final java.util.Set<java.util.Map$Entry<K, V>> entrySet();
descriptor: ()Ljava/util/Set;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
astore 1
start local 1 1: new org.h2.mvstore.MVMap$2
dup
aload 0
aload 1
invokespecial org.h2.mvstore.MVMap$2.<init>:(Lorg/h2/mvstore/MVMap;Lorg/h2/mvstore/Page;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
1 2 1 root Lorg/h2/mvstore/Page;
Signature: ()Ljava/util/Set<Ljava/util/Map$Entry<TK;TV;>;>;
public java.util.Set<K> keySet();
descriptor: ()Ljava/util/Set;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
astore 1
start local 1 1: new org.h2.mvstore.MVMap$3
dup
aload 0
aload 1
invokespecial org.h2.mvstore.MVMap$3.<init>:(Lorg/h2/mvstore/MVMap;Lorg/h2/mvstore/Page;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
1 2 1 root Lorg/h2/mvstore/Page;
Signature: ()Ljava/util/Set<TK;>;
public final java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 0
getfield org.h2.mvstore.MVMap.id:I
invokevirtual org.h2.mvstore.MVStore.getMapName:(I)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public final org.h2.mvstore.MVStore getStore();
descriptor: ()Lorg/h2/mvstore/MVStore;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public final int getId();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.id:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public final org.h2.mvstore.Page getRootPage();
descriptor: ()Lorg/h2/mvstore/Page;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.flushAndGetRoot:()Lorg/h2/mvstore/RootReference;
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public org.h2.mvstore.RootReference getRoot();
descriptor: ()Lorg/h2/mvstore/RootReference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast org.h2.mvstore.RootReference
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public org.h2.mvstore.RootReference flushAndGetRoot();
descriptor: ()Lorg/h2/mvstore/RootReference;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 1
start local 1 1: aload 0
getfield org.h2.mvstore.MVMap.singleWriter:Z
ifeq 3
aload 1
invokevirtual org.h2.mvstore.RootReference.getAppendCounter:()I
ifle 3
2: aload 0
aload 1
iconst_0
invokevirtual org.h2.mvstore.MVMap.flushAppendBuffer:(Lorg/h2/mvstore/RootReference;Z)Lorg/h2/mvstore/RootReference;
areturn
3: StackMap locals: org.h2.mvstore.RootReference
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
1 4 1 rootReference Lorg/h2/mvstore/RootReference;
final void setInitialRoot(org.h2.mvstore.Page, long);
descriptor: (Lorg/h2/mvstore/Page;J)V
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
new org.h2.mvstore.RootReference
dup
aload 1
lload 2
invokespecial org.h2.mvstore.RootReference.<init>:(Lorg/h2/mvstore/Page;J)V
invokevirtual java.util.concurrent.atomic.AtomicReference.set:(Ljava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 2 1 rootPage Lorg/h2/mvstore/Page;
0 2 2 version J
MethodParameters:
Name Flags
rootPage
version
final void rollbackTo(long);
descriptor: (J)V
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: lload 1
aload 0
getfield org.h2.mvstore.MVMap.createVersion:J
lcmp
ifle 2
1: aload 0
lload 1
invokevirtual org.h2.mvstore.MVMap.rollbackRoot:(J)V
2: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 3 1 version J
MethodParameters:
Name Flags
version
void rollbackRoot(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.mvstore.MVMap.flushAndGetRoot:()Lorg/h2/mvstore/RootReference;
astore 3
start local 3 1: goto 5
start local 4 2: StackMap locals: org.h2.mvstore.RootReference org.h2.mvstore.RootReference
StackMap stack:
aload 0
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
aload 3
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 5
3: aload 4
astore 3
4: aload 0
iconst_0
putfield org.h2.mvstore.MVMap.closed:Z
end local 4 5: StackMap locals:
StackMap stack:
aload 3
getfield org.h2.mvstore.RootReference.version:J
lload 1
lcmp
iflt 7
aload 3
getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
dup
astore 4
start local 4 6: ifnonnull 2
end local 4 7: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual org.h2.mvstore.MVMap.setWriteVersion:(J)Lorg/h2/mvstore/RootReference;
pop
8: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 9 1 version J
1 9 3 rootReference Lorg/h2/mvstore/RootReference;
2 5 4 previous Lorg/h2/mvstore/RootReference;
6 7 4 previous Lorg/h2/mvstore/RootReference;
MethodParameters:
Name Flags
version
protected final boolean updateRoot(org.h2.mvstore.RootReference, org.h2.mvstore.Page, int);
descriptor: (Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/Page;I)Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=8, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.h2.mvstore.MVMap.flushAndGetRoot:()Lorg/h2/mvstore/RootReference;
astore 4
start local 4 1: aload 4
aload 1
if_acmpne 8
2: aload 4
getfield org.h2.mvstore.RootReference.lockedForUpdate:Z
ifne 8
3: aload 0
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
aload 4
4: new org.h2.mvstore.RootReference
dup
aload 4
aload 2
iload 3
i2l
invokespecial org.h2.mvstore.RootReference.<init>:(Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/Page;J)V
5: invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
6: ifeq 8
7: iconst_1
ireturn
StackMap locals: org.h2.mvstore.RootReference
StackMap stack:
8: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 9 1 expectedRootReference Lorg/h2/mvstore/RootReference;
0 9 2 newRootPage Lorg/h2/mvstore/Page;
0 9 3 attemptUpdateCounter I
1 9 4 currentRoot Lorg/h2/mvstore/RootReference;
MethodParameters:
Name Flags
expectedRootReference
newRootPage
attemptUpdateCounter
private void removeUnusedOldVersions(org.h2.mvstore.RootReference);
descriptor: (Lorg/h2/mvstore/RootReference;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getOldestVersionToKeep:()J
lstore 2
start local 2 1: aload 1
astore 4
start local 4 2: goto 6
3: StackMap locals: long org.h2.mvstore.RootReference
StackMap stack:
aload 4
getfield org.h2.mvstore.RootReference.version:J
lload 2
lcmp
ifge 5
4: aload 4
aconst_null
putfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
5: StackMap locals:
StackMap stack:
aload 4
getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
astore 4
StackMap locals:
StackMap stack:
6: aload 4
ifnonnull 3
end local 4 7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 8 1 rootReference Lorg/h2/mvstore/RootReference;
1 8 2 oldest J
2 7 4 rootRef Lorg/h2/mvstore/RootReference;
MethodParameters:
Name Flags
rootReference
public final boolean isReadOnly();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.readOnly:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public final void setVolatile(boolean);
descriptor: (Z)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
putfield org.h2.mvstore.MVMap.isVolatile:Z
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 2 1 isVolatile Z
MethodParameters:
Name Flags
isVolatile
public final boolean isVolatile();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.isVolatile:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
protected final void beforeWrite();
descriptor: ()V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=6, locals=3, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.closed:Z
ifeq 5
1: aload 0
invokevirtual org.h2.mvstore.MVMap.getId:()I
istore 1
start local 1 2: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
iload 1
invokevirtual org.h2.mvstore.MVStore.getMapName:(I)Ljava/lang/String;
astore 2
start local 2 3: iconst_4
ldc "Map {0}({1}) is closed. {2}"
iconst_3
anewarray java.lang.Object
dup
iconst_0
aload 2
aastore
dup
iconst_1
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_2
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getPanicException:()Ljava/lang/IllegalStateException;
aastore
4: invokestatic org.h2.mvstore.DataUtils.newIllegalStateException:(ILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/IllegalStateException;
athrow
end local 2 end local 1 5: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVMap.readOnly:Z
ifeq 8
6: ldc "This map is read-only"
7: invokestatic org.h2.mvstore.DataUtils.newUnsupportedOperationException:(Ljava/lang/String;)Ljava/lang/UnsupportedOperationException;
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 0
invokevirtual org.h2.mvstore.MVStore.beforeWrite:(Lorg/h2/mvstore/MVMap;)V
9: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
2 5 1 id I
3 5 2 mapName Ljava/lang/String;
public final int hashCode();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.id:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public final boolean equals(java.lang.Object);
descriptor: (Ljava/lang/Object;)Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
if_acmpne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 2 1 o Ljava/lang/Object;
MethodParameters:
Name Flags
o
public final int size();
descriptor: ()I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.sizeAsLong:()J
lstore 1
start local 1 1: lload 1
ldc 2147483647
lcmp
ifle 2
ldc 2147483647
goto 3
StackMap locals: long
StackMap stack:
2: lload 1
l2i
StackMap locals:
StackMap stack: int
3: ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
1 4 1 size J
public final long sizeAsLong();
descriptor: ()J
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
invokevirtual org.h2.mvstore.RootReference.getTotalCount:()J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public boolean isEmpty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.sizeAsLong:()J
lconst_0
lcmp
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public final long getCreateVersion();
descriptor: ()J
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.createVersion:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
protected final void removePage(long, int);
descriptor: (JI)V
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
lload 1
iload 3
invokevirtual org.h2.mvstore.MVStore.removePage:(JI)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 2 1 pos J
0 2 3 memory I
MethodParameters:
Name Flags
pos
memory
public final org.h2.mvstore.MVMap<K, V> openVersion(long);
descriptor: (J)Lorg/h2/mvstore/MVMap;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=7, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.mvstore.MVMap.readOnly:Z
ifeq 3
1: ldc "This map is read-only; need to call the method on the writable map"
2: invokestatic org.h2.mvstore.DataUtils.newUnsupportedOperationException:(Ljava/lang/String;)Ljava/lang/UnsupportedOperationException;
athrow
3: StackMap locals:
StackMap stack:
lload 1
aload 0
getfield org.h2.mvstore.MVMap.createVersion:J
lcmp
iflt 4
iconst_1
goto 5
StackMap locals:
StackMap stack:
4: iconst_0
5: StackMap locals:
StackMap stack: int
ldc "Unknown version {0}; this map was created in version is {1}"
iconst_2
anewarray java.lang.Object
dup
iconst_0
6: lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
dup
iconst_1
aload 0
getfield org.h2.mvstore.MVMap.createVersion:J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aastore
7: invokestatic org.h2.mvstore.DataUtils.checkArgument:(ZLjava/lang/String;[Ljava/lang/Object;)V
8: aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 3
start local 3 9: aload 0
aload 3
invokevirtual org.h2.mvstore.MVMap.removeUnusedOldVersions:(Lorg/h2/mvstore/RootReference;)V
10: goto 12
11: StackMap locals: org.h2.mvstore.RootReference
StackMap stack:
aload 3
getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
astore 3
12: StackMap locals:
StackMap stack:
aload 3
ifnull 13
aload 3
getfield org.h2.mvstore.RootReference.version:J
lload 1
lcmp
ifgt 11
13: StackMap locals:
StackMap stack:
aload 3
ifnonnull 16
14: aload 0
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 0
invokevirtual org.h2.mvstore.MVMap.getId:()I
lload 1
invokevirtual org.h2.mvstore.MVStore.getRootPos:(IJ)J
lload 1
invokevirtual org.h2.mvstore.MVMap.openReadOnly:(JJ)Lorg/h2/mvstore/MVMap;
astore 4
start local 4 15: aload 4
areturn
end local 4 16: StackMap locals:
StackMap stack:
aload 0
aload 3
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
lload 1
invokevirtual org.h2.mvstore.MVMap.openReadOnly:(Lorg/h2/mvstore/Page;J)Lorg/h2/mvstore/MVMap;
astore 4
start local 4 17: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 18
aload 4
invokevirtual org.h2.mvstore.MVMap.getVersion:()J
lload 1
lcmp
ifle 18
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
aload 4
invokevirtual org.h2.mvstore.MVMap.getVersion:()J
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " <= "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 1
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
18: StackMap locals: org.h2.mvstore.MVMap
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 19 1 version J
9 19 3 rootReference Lorg/h2/mvstore/RootReference;
15 16 4 map Lorg/h2/mvstore/MVMap<TK;TV;>;
17 19 4 m Lorg/h2/mvstore/MVMap<TK;TV;>;
Signature: (J)Lorg/h2/mvstore/MVMap<TK;TV;>;
MethodParameters:
Name Flags
version
final org.h2.mvstore.MVMap<K, V> openReadOnly(long, long);
descriptor: (JJ)Lorg/h2/mvstore/MVMap;
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
invokevirtual org.h2.mvstore.MVMap.readOrCreateRootPage:(J)Lorg/h2/mvstore/Page;
astore 5
start local 5 1: aload 0
aload 5
lload 3
invokevirtual org.h2.mvstore.MVMap.openReadOnly:(Lorg/h2/mvstore/Page;J)Lorg/h2/mvstore/MVMap;
areturn
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 2 1 rootPos J
0 2 3 version J
1 2 5 root Lorg/h2/mvstore/Page;
Signature: (JJ)Lorg/h2/mvstore/MVMap<TK;TV;>;
MethodParameters:
Name Flags
rootPos
version
private org.h2.mvstore.MVMap<K, V> openReadOnly(org.h2.mvstore.Page, long);
descriptor: (Lorg/h2/mvstore/Page;J)Lorg/h2/mvstore/MVMap;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.h2.mvstore.MVMap.cloneIt:()Lorg/h2/mvstore/MVMap;
astore 4
start local 4 1: aload 4
iconst_1
putfield org.h2.mvstore.MVMap.readOnly:Z
2: aload 4
aload 1
lload 2
invokevirtual org.h2.mvstore.MVMap.setInitialRoot:(Lorg/h2/mvstore/Page;J)V
3: aload 4
areturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 4 1 root Lorg/h2/mvstore/Page;
0 4 2 version J
1 4 4 m Lorg/h2/mvstore/MVMap<TK;TV;>;
Signature: (Lorg/h2/mvstore/Page;J)Lorg/h2/mvstore/MVMap<TK;TV;>;
MethodParameters:
Name Flags
root
version
public final long getVersion();
descriptor: ()J
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
invokestatic org.h2.mvstore.MVMap.getVersion:(Lorg/h2/mvstore/RootReference;)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
private static long getVersion(org.h2.mvstore.RootReference);
descriptor: (Lorg/h2/mvstore/RootReference;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
astore 1
start local 1 1: aload 1
ifnull 3
aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
aload 0
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
if_acmpne 3
2: aload 1
getfield org.h2.mvstore.RootReference.appendCounter:B
aload 0
getfield org.h2.mvstore.RootReference.appendCounter:B
if_icmpeq 4
3: StackMap locals: org.h2.mvstore.RootReference
StackMap stack:
aload 0
getfield org.h2.mvstore.RootReference.version:J
goto 5
StackMap locals:
StackMap stack:
4: aload 1
getfield org.h2.mvstore.RootReference.version:J
5: StackMap locals:
StackMap stack: long
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 rootReference Lorg/h2/mvstore/RootReference;
1 6 1 previous Lorg/h2/mvstore/RootReference;
MethodParameters:
Name Flags
rootReference
final boolean hasChangesSince(long);
descriptor: (J)Z
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 3
start local 3 1: aload 3
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
astore 4
start local 4 2: aload 4
invokevirtual org.h2.mvstore.Page.isSaved:()Z
ifne 3
aload 3
invokevirtual org.h2.mvstore.RootReference.getTotalCount:()J
lconst_0
lcmp
ifgt 5
3: StackMap locals: org.h2.mvstore.RootReference org.h2.mvstore.Page
StackMap stack:
aload 3
invokestatic org.h2.mvstore.MVMap.getVersion:(Lorg/h2/mvstore/RootReference;)J
lload 1
4: lcmp
ifgt 5
iconst_0
ireturn
StackMap locals:
StackMap stack:
5: iconst_1
ireturn
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/MVMap<TK;TV;>;
0 6 1 version J
1 6 3 rootReference Lorg/h2/mvstore/RootReference;
2 6 4 root Lorg/h2/mvstore/Page;
MethodParameters:
Name Flags
version
protected int getChildPageCount(org.h2.mvstore.Page);
descriptor: (Lorg/h2/mvstore/Page;)I
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.h2.mvstore.Page.getRawChildPageCount:()I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 p Lorg/h2/mvstore/Page;
MethodParameters:
Name Flags
p
public java.lang.String getType();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aconst_null
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
protected java.lang.String asString(java.lang.String);
descriptor: (Ljava/lang/String;)Ljava/lang/String;
flags: (0x0004) ACC_PROTECTED
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: new java.lang.StringBuilder
dup
invokespecial java.lang.StringBuilder.<init>:()V
astore 2
start local 2 1: aload 1
ifnull 3
2: aload 2
ldc "name"
aload 1
invokestatic org.h2.mvstore.DataUtils.appendMap:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
3: StackMap locals: java.lang.StringBuilder
StackMap stack:
aload 0
getfield org.h2.mvstore.MVMap.createVersion:J
lconst_0
lcmp
ifeq 5
4: aload 2
ldc "createVersion"
aload 0
getfield org.h2.mvstore.MVMap.createVersion:J
invokestatic org.h2.mvstore.DataUtils.appendMap:(Ljava/lang/StringBuilder;Ljava/lang/String;J)V
5: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.getType:()Ljava/lang/String;
astore 3
start local 3 6: aload 3
ifnull 8
7: aload 2
ldc "type"
aload 3
invokestatic org.h2.mvstore.DataUtils.appendMap:(Ljava/lang/StringBuilder;Ljava/lang/String;Ljava/lang/String;)V
8: StackMap locals: java.lang.String
StackMap stack:
aload 2
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 9 1 name Ljava/lang/String;
1 9 2 buff Ljava/lang/StringBuilder;
6 9 3 type Ljava/lang/String;
MethodParameters:
Name Flags
name
final org.h2.mvstore.RootReference setWriteVersion(long);
descriptor: (J)Lorg/h2/mvstore/RootReference;
flags: (0x0010) ACC_FINAL
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: iconst_0
istore 3
start local 3 1: StackMap locals: int
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.flushAndGetRoot:()Lorg/h2/mvstore/RootReference;
astore 4
start local 4 2: aload 4
getfield org.h2.mvstore.RootReference.version:J
lload 1
lcmp
iflt 4
3: aload 4
areturn
4: StackMap locals: org.h2.mvstore.RootReference
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.isClosed:()Z
ifeq 8
5: aload 4
getfield org.h2.mvstore.RootReference.version:J
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getOldestVersionToKeep:()J
lcmp
ifge 7
6: aconst_null
areturn
7: StackMap locals:
StackMap stack:
aload 4
areturn
8: StackMap locals:
StackMap stack:
new org.h2.mvstore.RootReference
dup
aload 4
lload 1
iinc 3 1
iload 3
invokespecial org.h2.mvstore.RootReference.<init>:(Lorg/h2/mvstore/RootReference;JI)V
astore 5
start local 5 9: aload 0
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
aload 4
aload 5
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 1
10: aload 0
aload 5
invokevirtual org.h2.mvstore.MVMap.removeUnusedOldVersions:(Lorg/h2/mvstore/RootReference;)V
11: aload 5
areturn
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 12 1 writeVersion J
1 12 3 attempt I
2 12 4 rootReference Lorg/h2/mvstore/RootReference;
9 12 5 updatedRootReference Lorg/h2/mvstore/RootReference;
MethodParameters:
Name Flags
writeVersion
public org.h2.mvstore.Page createEmptyLeaf();
descriptor: ()Lorg/h2/mvstore/Page;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.h2.mvstore.Page.createEmptyLeaf:(Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
protected org.h2.mvstore.Page createEmptyNode();
descriptor: ()Lorg/h2/mvstore/Page;
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic org.h2.mvstore.Page.createEmptyNode:(Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
final void copyFrom(org.h2.mvstore.MVMap<K, V>);
descriptor: (Lorg/h2/mvstore/MVMap;)V
flags: (0x0010) ACC_FINAL
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.registerVersionUsage:()Lorg/h2/mvstore/MVStore$TxCounter;
astore 2
start local 2 1: aload 0
invokevirtual org.h2.mvstore.MVMap.beforeWrite:()V
2: aload 0
aload 1
invokevirtual org.h2.mvstore.MVMap.getRootPage:()Lorg/h2/mvstore/Page;
aconst_null
iconst_0
invokevirtual org.h2.mvstore.MVMap.copy:(Lorg/h2/mvstore/Page;Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/Page;
pop
3: goto 7
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.MVMap org.h2.mvstore.MVStore$TxCounter
StackMap stack: java.lang.Throwable
4: astore 3
5: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 2
invokevirtual org.h2.mvstore.MVStore.deregisterVersionUsage:(Lorg/h2/mvstore/MVStore$TxCounter;)V
6: aload 3
athrow
7: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 2
invokevirtual org.h2.mvstore.MVStore.deregisterVersionUsage:(Lorg/h2/mvstore/MVStore$TxCounter;)V
8: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 9 1 sourceMap Lorg/h2/mvstore/MVMap<TK;TV;>;
1 9 2 txCounter Lorg/h2/mvstore/MVStore$TxCounter;
Exception table:
from to target type
1 4 4 any
Signature: (Lorg/h2/mvstore/MVMap<TK;TV;>;)V
MethodParameters:
Name Flags
sourceMap
private org.h2.mvstore.Page copy(org.h2.mvstore.Page, org.h2.mvstore.Page, int);
descriptor: (Lorg/h2/mvstore/Page;Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/Page;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
aload 0
invokevirtual org.h2.mvstore.Page.copy:(Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
astore 4
start local 4 1: aload 2
ifnonnull 4
2: aload 0
aload 4
ldc -1
invokevirtual org.h2.mvstore.MVMap.setInitialRoot:(Lorg/h2/mvstore/Page;J)V
3: goto 5
4: StackMap locals: org.h2.mvstore.Page
StackMap stack:
aload 2
iload 3
aload 4
invokevirtual org.h2.mvstore.Page.setChild:(ILorg/h2/mvstore/Page;)V
5: StackMap locals:
StackMap stack:
aload 1
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifne 13
6: iconst_0
istore 5
start local 5 7: goto 11
8: StackMap locals: int
StackMap stack:
aload 1
iload 5
invokevirtual org.h2.mvstore.Page.getChildPagePos:(I)J
lconst_0
lcmp
ifeq 10
9: aload 0
aload 1
iload 5
invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
aload 4
iload 5
invokevirtual org.h2.mvstore.MVMap.copy:(Lorg/h2/mvstore/Page;Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/Page;
pop
10: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
11: iload 5
aload 0
aload 4
invokevirtual org.h2.mvstore.MVMap.getChildPageCount:(Lorg/h2/mvstore/Page;)I
if_icmplt 8
end local 5 12: aload 4
invokevirtual org.h2.mvstore.Page.setComplete:()V
13: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 4
invokevirtual org.h2.mvstore.Page.getMemory:()I
invokevirtual org.h2.mvstore.MVStore.registerUnsavedPage:(I)V
14: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.isSaveNeeded:()Z
ifeq 16
15: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.commit:()J
pop2
16: StackMap locals:
StackMap stack:
aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 17 1 source Lorg/h2/mvstore/Page;
0 17 2 parent Lorg/h2/mvstore/Page;
0 17 3 index I
1 17 4 target Lorg/h2/mvstore/Page;
7 12 5 i I
MethodParameters:
Name Flags
source
parent
index
private org.h2.mvstore.RootReference flushAppendBuffer(org.h2.mvstore.RootReference, boolean);
descriptor: (Lorg/h2/mvstore/RootReference;Z)Lorg/h2/mvstore/RootReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=20, args_size=3
start local 0 start local 1 start local 2 0: new org.h2.mvstore.MVMap$IntValueHolder
dup
invokespecial org.h2.mvstore.MVMap$IntValueHolder.<init>:()V
astore 3
start local 3 1: iload 2
ifeq 2
aload 1
goto 3
StackMap locals: org.h2.mvstore.MVMap$IntValueHolder
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: org.h2.mvstore.RootReference
3: astore 4
start local 4 4: iconst_0
istore 5
start local 5 5: goto 102
start local 6 6: StackMap locals: org.h2.mvstore.RootReference int int
StackMap stack:
aload 4
ifnonnull 12
7: aload 0
aload 1
iinc 5 1
iload 5
invokevirtual org.h2.mvstore.MVMap.tryLock:(Lorg/h2/mvstore/RootReference;I)Lorg/h2/mvstore/RootReference;
astore 4
8: aload 4
ifnonnull 9
aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
goto 10
StackMap locals:
StackMap stack:
9: aload 4
StackMap locals:
StackMap stack: org.h2.mvstore.RootReference
10: astore 1
11: goto 102
12: StackMap locals:
StackMap stack:
aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
astore 7
start local 7 13: aload 7
aconst_null
invokevirtual org.h2.mvstore.Page.getAppendCursorPos:(Lorg/h2/mvstore/CursorPos;)Lorg/h2/mvstore/CursorPos;
astore 8
start local 8 14: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 15
aload 8
ifnonnull 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
15: StackMap locals: org.h2.mvstore.Page org.h2.mvstore.CursorPos
StackMap stack:
getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 16
aload 8
getfield org.h2.mvstore.CursorPos.index:I
iflt 16
new java.lang.AssertionError
dup
aload 8
getfield org.h2.mvstore.CursorPos.index:I
invokespecial java.lang.AssertionError.<init>:(I)V
athrow
16: StackMap locals:
StackMap stack:
aload 8
getfield org.h2.mvstore.CursorPos.index:I
ineg
iconst_1
isub
istore 9
start local 9 17: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 18
iload 9
aload 8
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
if_icmpeq 18
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
iload 9
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " != "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 8
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
18: StackMap locals: int
StackMap stack:
aload 8
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
astore 10
start local 10 19: aload 8
astore 11
start local 11 20: aload 8
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 8
21: iconst_0
istore 12
start local 12 22: aconst_null
astore 13
start local 13 23: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getKeysPerPage:()I
aload 10
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
isub
istore 14
start local 14 24: iload 14
ifle 42
25: aload 10
invokevirtual org.h2.mvstore.Page.copy:()Lorg/h2/mvstore/Page;
astore 10
26: iload 6
iload 14
if_icmpgt 29
27: aload 10
iload 6
aload 0
getfield org.h2.mvstore.MVMap.keysBuffer:[Ljava/lang/Object;
aload 0
getfield org.h2.mvstore.MVMap.valuesBuffer:[Ljava/lang/Object;
invokevirtual org.h2.mvstore.Page.expand:(I[Ljava/lang/Object;[Ljava/lang/Object;)V
28: goto 48
29: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference int int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page int
StackMap stack:
aload 10
iload 14
aload 0
getfield org.h2.mvstore.MVMap.keysBuffer:[Ljava/lang/Object;
aload 0
getfield org.h2.mvstore.MVMap.valuesBuffer:[Ljava/lang/Object;
invokevirtual org.h2.mvstore.Page.expand:(I[Ljava/lang/Object;[Ljava/lang/Object;)V
30: iload 6
iload 14
isub
istore 6
31: iload 2
ifeq 36
32: aload 0
getfield org.h2.mvstore.MVMap.keysBuffer:[Ljava/lang/Object;
iload 14
aload 0
getfield org.h2.mvstore.MVMap.keysBuffer:[Ljava/lang/Object;
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
33: aload 0
getfield org.h2.mvstore.MVMap.valuesBuffer:[Ljava/lang/Object;
iload 14
aload 0
getfield org.h2.mvstore.MVMap.valuesBuffer:[Ljava/lang/Object;
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
34: iload 6
istore 12
35: goto 48
36: StackMap locals:
StackMap stack:
iload 6
anewarray java.lang.Object
astore 15
start local 15 37: iload 6
anewarray java.lang.Object
astore 16
start local 16 38: aload 0
getfield org.h2.mvstore.MVMap.keysBuffer:[Ljava/lang/Object;
iload 14
aload 15
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
39: aload 0
getfield org.h2.mvstore.MVMap.valuesBuffer:[Ljava/lang/Object;
iload 14
aload 16
iconst_0
iload 6
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
40: aload 0
aload 15
aload 16
iconst_0
invokestatic org.h2.mvstore.Page.createLeaf:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Ljava/lang/Object;I)Lorg/h2/mvstore/Page;
astore 13
end local 16 end local 15 41: goto 48
42: StackMap locals:
StackMap stack:
aload 11
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 11
43: aload 0
44: aload 0
getfield org.h2.mvstore.MVMap.keysBuffer:[Ljava/lang/Object;
iload 6
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
45: aload 0
getfield org.h2.mvstore.MVMap.valuesBuffer:[Ljava/lang/Object;
iload 6
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
46: iconst_0
47: invokestatic org.h2.mvstore.Page.createLeaf:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Ljava/lang/Object;I)Lorg/h2/mvstore/Page;
astore 13
48: StackMap locals:
StackMap stack:
aload 3
iconst_0
putfield org.h2.mvstore.MVMap$IntValueHolder.value:I
49: aload 13
ifnull 83
50: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 51
aload 13
getfield org.h2.mvstore.Page.map:Lorg/h2/mvstore/MVMap;
aload 0
if_acmpeq 51
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
51: StackMap locals:
StackMap stack:
getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 52
aload 13
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
ifgt 52
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
52: StackMap locals:
StackMap stack:
aload 13
iconst_0
invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
astore 15
start local 15 53: aload 3
dup
getfield org.h2.mvstore.MVMap$IntValueHolder.value:I
aload 13
invokevirtual org.h2.mvstore.Page.getMemory:()I
iadd
putfield org.h2.mvstore.MVMap$IntValueHolder.value:I
54: StackMap locals: java.lang.Object
StackMap stack:
aload 8
ifnonnull 65
55: aload 10
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
ifne 58
56: aload 13
astore 10
57: goto 83
58: StackMap locals:
StackMap stack:
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 15
aastore
astore 16
start local 16 59: iconst_2
anewarray org.h2.mvstore.Page$PageReference
dup
iconst_0
60: new org.h2.mvstore.Page$PageReference
dup
aload 10
invokespecial org.h2.mvstore.Page$PageReference.<init>:(Lorg/h2/mvstore/Page;)V
aastore
dup
iconst_1
61: new org.h2.mvstore.Page$PageReference
dup
aload 13
invokespecial org.h2.mvstore.Page$PageReference.<init>:(Lorg/h2/mvstore/Page;)V
aastore
62: astore 17
start local 17 63: aload 0
aload 16
aload 17
aload 10
invokevirtual org.h2.mvstore.Page.getTotalCount:()J
aload 13
invokevirtual org.h2.mvstore.Page.getTotalCount:()J
ladd
iconst_0
invokestatic org.h2.mvstore.Page.createNode:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Lorg/h2/mvstore/Page$PageReference;JI)Lorg/h2/mvstore/Page;
astore 10
end local 17 end local 16 64: goto 83
65: StackMap locals:
StackMap stack:
aload 10
astore 16
start local 16 66: aload 8
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
astore 10
67: aload 8
getfield org.h2.mvstore.CursorPos.index:I
istore 9
68: aload 8
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 8
69: aload 10
invokevirtual org.h2.mvstore.Page.copy:()Lorg/h2/mvstore/Page;
astore 10
70: aload 10
iload 9
aload 13
invokevirtual org.h2.mvstore.Page.setChild:(ILorg/h2/mvstore/Page;)V
71: aload 10
iload 9
aload 15
aload 16
invokevirtual org.h2.mvstore.Page.insertNode:(ILjava/lang/Object;Lorg/h2/mvstore/Page;)V
72: aload 10
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
istore 6
73: iload 6
aload 10
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 74
iconst_1
goto 75
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference int int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page int java.lang.Object org.h2.mvstore.Page
StackMap stack: int
74: iconst_2
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference int int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page int java.lang.Object org.h2.mvstore.Page
StackMap stack: int int
75: isub
istore 17
start local 17 76: iload 6
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getKeysPerPage:()I
if_icmpgt 79
77: aload 10
invokevirtual org.h2.mvstore.Page.getMemory:()I
i2l
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getMaxPageSize:()J
lcmp
iflt 83
iload 17
ifgt 79
78: goto 83
79: StackMap locals: int
StackMap stack:
aload 10
iload 17
invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
astore 15
80: aload 10
iload 17
invokevirtual org.h2.mvstore.Page.split:(I)Lorg/h2/mvstore/Page;
astore 13
81: aload 3
dup
getfield org.h2.mvstore.MVMap$IntValueHolder.value:I
aload 10
invokevirtual org.h2.mvstore.Page.getMemory:()I
aload 13
invokevirtual org.h2.mvstore.Page.getMemory:()I
iadd
iadd
putfield org.h2.mvstore.MVMap$IntValueHolder.value:I
end local 17 end local 16 82: goto 54
end local 15 83: StackMap locals:
StackMap stack:
aload 8
aload 10
aload 3
invokestatic org.h2.mvstore.MVMap.replacePage:(Lorg/h2/mvstore/CursorPos;Lorg/h2/mvstore/Page;Lorg/h2/mvstore/MVMap$IntValueHolder;)Lorg/h2/mvstore/Page;
astore 10
84: new org.h2.mvstore.RootReference
dup
aload 1
aload 10
iload 12
85: iload 2
86: invokespecial org.h2.mvstore.RootReference.<init>:(Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/Page;IZ)V
astore 15
start local 15 87: aload 0
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
aload 15
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 101
88: aconst_null
astore 4
89: goto 92
90: StackMap locals: org.h2.mvstore.RootReference
StackMap stack:
aload 11
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
invokevirtual org.h2.mvstore.Page.removePage:()V
91: aload 11
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 11
92: StackMap locals:
StackMap stack:
aload 11
ifnonnull 90
93: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getFileStore:()Lorg/h2/mvstore/FileStore;
ifnull 95
94: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 3
getfield org.h2.mvstore.MVMap$IntValueHolder.value:I
invokevirtual org.h2.mvstore.MVStore.registerUnsavedPage:(I)V
95: StackMap locals:
StackMap stack:
getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 96
iload 2
ifne 96
aload 15
invokevirtual org.h2.mvstore.RootReference.getAppendCounter:()I
ifeq 96
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
96: StackMap locals:
StackMap stack:
aload 15
astore 19
97: aload 4
ifnull 100
iload 2
ifne 100
98: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 99
aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
aload 4
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
if_acmpeq 99
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
99: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference int int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page int org.h2.mvstore.RootReference top top top org.h2.mvstore.RootReference
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.unlockRoot:()Lorg/h2/mvstore/RootReference;
astore 1
100: StackMap locals:
StackMap stack:
aload 19
areturn
101: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference int int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page org.h2.mvstore.CursorPos int org.h2.mvstore.Page int org.h2.mvstore.RootReference
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 1
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 102: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference int
StackMap stack:
aload 1
invokevirtual org.h2.mvstore.RootReference.getAppendCounter:()I
dup
istore 6
start local 6 103: ifgt 6
end local 6 end local 5 104: goto 110
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference
StackMap stack: java.lang.Throwable
105: astore 18
106: aload 4
ifnull 109
iload 2
ifne 109
107: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 108
aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
aload 4
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
if_acmpeq 108
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
108: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.unlockRoot:()Lorg/h2/mvstore/RootReference;
astore 1
109: StackMap locals:
StackMap stack:
aload 18
athrow
110: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.RootReference
StackMap stack:
aload 4
ifnull 113
iload 2
ifne 113
111: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 112
aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
aload 4
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
if_acmpeq 112
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
112: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.unlockRoot:()Lorg/h2/mvstore/RootReference;
astore 1
113: StackMap locals:
StackMap stack:
aload 1
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 114 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 114 1 rootReference Lorg/h2/mvstore/RootReference;
0 114 2 lockedForUpdate Z
1 114 3 unsavedMemoryHolder Lorg/h2/mvstore/MVMap$IntValueHolder;
4 114 4 lockedRootReference Lorg/h2/mvstore/RootReference;
5 104 5 attempt I
6 102 6 keyCount I
103 104 6 keyCount I
13 102 7 rootPage Lorg/h2/mvstore/Page;
14 102 8 pos Lorg/h2/mvstore/CursorPos;
17 102 9 index I
19 102 10 p Lorg/h2/mvstore/Page;
20 102 11 tip Lorg/h2/mvstore/CursorPos;
22 102 12 remainingBuffer I
23 102 13 page Lorg/h2/mvstore/Page;
24 102 14 available I
37 41 15 keys [Ljava/lang/Object;
38 41 16 values [Ljava/lang/Object;
53 83 15 key Ljava/lang/Object;
59 64 16 keys [Ljava/lang/Object;
63 64 17 children [Lorg/h2/mvstore/Page$PageReference;
66 82 16 c Lorg/h2/mvstore/Page;
76 82 17 at I
87 102 15 updatedRootReference Lorg/h2/mvstore/RootReference;
Exception table:
from to target type
4 97 105 any
101 105 105 any
MethodParameters:
Name Flags
rootReference
lockedForUpdate
private static org.h2.mvstore.Page replacePage(org.h2.mvstore.CursorPos, org.h2.mvstore.Page, org.h2.mvstore.MVMap$IntValueHolder);
descriptor: (Lorg/h2/mvstore/CursorPos;Lorg/h2/mvstore/Page;Lorg/h2/mvstore/MVMap$IntValueHolder;)Lorg/h2/mvstore/Page;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.h2.mvstore.Page.getMemory:()I
istore 3
start local 3 1: goto 9
2: StackMap locals: int
StackMap stack:
aload 0
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
astore 4
start local 4 3: aload 4
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
ifle 8
4: aload 1
astore 5
start local 5 5: aload 4
invokevirtual org.h2.mvstore.Page.copy:()Lorg/h2/mvstore/Page;
astore 1
6: aload 1
aload 0
getfield org.h2.mvstore.CursorPos.index:I
aload 5
invokevirtual org.h2.mvstore.Page.setChild:(ILorg/h2/mvstore/Page;)V
7: iload 3
aload 1
invokevirtual org.h2.mvstore.Page.getMemory:()I
iadd
istore 3
end local 5 8: StackMap locals: org.h2.mvstore.Page
StackMap stack:
aload 0
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 0
end local 4 9: StackMap locals:
StackMap stack:
aload 0
ifnonnull 2
10: aload 2
dup
getfield org.h2.mvstore.MVMap$IntValueHolder.value:I
iload 3
iadd
putfield org.h2.mvstore.MVMap$IntValueHolder.value:I
11: aload 1
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 path Lorg/h2/mvstore/CursorPos;
0 12 1 replacement Lorg/h2/mvstore/Page;
0 12 2 unsavedMemoryHolder Lorg/h2/mvstore/MVMap$IntValueHolder;
1 12 3 unsavedMemory I
3 9 4 parent Lorg/h2/mvstore/Page;
5 8 5 child Lorg/h2/mvstore/Page;
MethodParameters:
Name Flags
path
replacement
unsavedMemoryHolder
public void append(K, );
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
invokevirtual org.h2.mvstore.MVMap.beforeWrite:()V
1: aload 0
aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
iconst_1
invokevirtual org.h2.mvstore.MVMap.lockRoot:(Lorg/h2/mvstore/RootReference;I)Lorg/h2/mvstore/RootReference;
astore 3
start local 3 2: aload 3
invokevirtual org.h2.mvstore.RootReference.getAppendCounter:()I
istore 4
start local 4 3: iload 4
aload 0
getfield org.h2.mvstore.MVMap.keysPerPage:I
if_icmplt 7
4: aload 0
aload 3
iconst_1
invokevirtual org.h2.mvstore.MVMap.flushAppendBuffer:(Lorg/h2/mvstore/RootReference;Z)Lorg/h2/mvstore/RootReference;
astore 3
5: aload 3
invokevirtual org.h2.mvstore.RootReference.getAppendCounter:()I
istore 4
6: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 7
iload 4
aload 0
getfield org.h2.mvstore.MVMap.keysPerPage:I
if_icmplt 7
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
7: StackMap locals: org.h2.mvstore.RootReference int
StackMap stack:
aload 0
getfield org.h2.mvstore.MVMap.keysBuffer:[Ljava/lang/Object;
iload 4
aload 1
aastore
8: aload 0
getfield org.h2.mvstore.MVMap.valuesBuffer:[Ljava/lang/Object;
iload 4
aload 2
aastore
9: iinc 4 1
10: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
11: astore 5
12: aload 0
aload 3
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
iload 4
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/RootReference;
pop
13: aload 5
athrow
14: StackMap locals:
StackMap stack:
aload 0
aload 3
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
iload 4
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/RootReference;
pop
15: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 16 1 key TK;
0 16 2 value TV;
2 16 3 rootReference Lorg/h2/mvstore/RootReference;
3 16 4 appendCounter I
Exception table:
from to target type
3 11 11 any
Signature: (TK;TV;)V
MethodParameters:
Name Flags
key
value
public void trimLast();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 1
start local 1 1: aload 1
invokevirtual org.h2.mvstore.RootReference.getAppendCounter:()I
istore 2
start local 2 2: iload 2
ifne 3
iconst_1
goto 4
StackMap locals: org.h2.mvstore.RootReference int
StackMap stack:
3: iconst_0
StackMap locals:
StackMap stack: int
4: istore 3
start local 3 5: iload 3
ifne 14
6: aload 0
aload 1
iconst_1
invokevirtual org.h2.mvstore.MVMap.lockRoot:(Lorg/h2/mvstore/RootReference;I)Lorg/h2/mvstore/RootReference;
astore 1
7: aload 1
invokevirtual org.h2.mvstore.RootReference.getAppendCounter:()I
istore 2
8: iload 2
ifne 9
iconst_1
goto 10
StackMap locals: int
StackMap stack:
9: iconst_0
StackMap locals:
StackMap stack: int
10: istore 3
11: iload 3
ifne 13
12: iinc 2 -1
13: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
iload 2
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/RootReference;
pop
14: StackMap locals:
StackMap stack:
iload 3
ifeq 20
15: aload 1
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
aconst_null
invokevirtual org.h2.mvstore.Page.getAppendCursorPos:(Lorg/h2/mvstore/CursorPos;)Lorg/h2/mvstore/CursorPos;
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
astore 4
start local 4 16: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 17
aload 4
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifne 17
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
17: StackMap locals: org.h2.mvstore.Page
StackMap stack:
getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 18
aload 4
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
ifgt 18
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
18: StackMap locals:
StackMap stack:
aload 4
aload 4
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
iconst_1
isub
invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
astore 5
start local 5 19: aload 0
aload 5
invokevirtual org.h2.mvstore.MVMap.remove:(Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 5 end local 4 20: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
1 21 1 rootReference Lorg/h2/mvstore/RootReference;
2 21 2 appendCounter I
5 21 3 useRegularRemove Z
16 20 4 lastLeaf Lorg/h2/mvstore/Page;
19 20 5 key Ljava/lang/Object;
public final java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
invokevirtual org.h2.mvstore.MVMap.asString:(Ljava/lang/String;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
public V operate(K, V, org.h2.mvstore.MVMap$DecisionMaker<? super V>);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;Lorg/h2/mvstore/MVMap$DecisionMaker;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=25, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokevirtual org.h2.mvstore.MVMap.beforeWrite:()V
1: new org.h2.mvstore.MVMap$IntValueHolder
dup
invokespecial org.h2.mvstore.MVMap$IntValueHolder.<init>:()V
astore 4
start local 4 2: iconst_0
istore 5
start local 5 3: StackMap locals: org.h2.mvstore.MVMap$IntValueHolder int
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.flushAndGetRoot:()Lorg/h2/mvstore/RootReference;
astore 6
start local 6 4: aconst_null
astore 7
start local 7 5: iinc 5 1
iload 5
iconst_3
if_icmpgt 6
aload 6
getfield org.h2.mvstore.RootReference.lockedForUpdate:Z
ifeq 8
6: StackMap locals: org.h2.mvstore.RootReference org.h2.mvstore.RootReference
StackMap stack:
aload 0
aload 6
iload 5
invokevirtual org.h2.mvstore.MVMap.lockRoot:(Lorg/h2/mvstore/RootReference;I)Lorg/h2/mvstore/RootReference;
astore 7
7: aload 7
astore 6
8: StackMap locals:
StackMap stack:
aload 6
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
astore 8
start local 8 9: aload 4
iconst_0
putfield org.h2.mvstore.MVMap$IntValueHolder.value:I
10: aload 8
aload 1
invokestatic org.h2.mvstore.MVMap.traverseDown:(Lorg/h2/mvstore/Page;Ljava/lang/Object;)Lorg/h2/mvstore/CursorPos;
astore 11
start local 11 11: aload 11
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
astore 12
start local 12 12: aload 11
getfield org.h2.mvstore.CursorPos.index:I
istore 13
start local 13 13: aload 11
astore 9
start local 9 14: aload 11
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 11
15: iload 13
ifge 16
aconst_null
goto 17
StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos top org.h2.mvstore.CursorPos org.h2.mvstore.Page int
StackMap stack:
16: aload 12
iload 13
invokevirtual org.h2.mvstore.Page.getValue:(I)Ljava/lang/Object;
StackMap locals:
StackMap stack: java.lang.Object
17: astore 10
start local 10 18: aload 3
aload 10
aload 2
invokevirtual org.h2.mvstore.MVMap$DecisionMaker.decide:(Ljava/lang/Object;Ljava/lang/Object;)Lorg/h2/mvstore/MVMap$Decision;
astore 14
start local 14 19: invokestatic org.h2.mvstore.MVMap.$SWITCH_TABLE$org$h2$mvstore$MVMap$Decision:()[I
aload 14
invokevirtual org.h2.mvstore.MVMap$Decision.ordinal:()I
iaload
tableswitch { // 1 - 4
1: 24
2: 33
3: 58
4: 20
default: 91
}
20: StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos java.lang.Object org.h2.mvstore.CursorPos org.h2.mvstore.Page int org.h2.mvstore.MVMap$Decision
StackMap stack:
aload 3
invokevirtual org.h2.mvstore.MVMap$DecisionMaker.reset:()V
21: aload 7
ifnull 3
22: aload 0
aload 8
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
pop
23: goto 3
24: StackMap locals:
StackMap stack:
aload 6
aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
if_acmpeq 29
25: aload 3
invokevirtual org.h2.mvstore.MVMap$DecisionMaker.reset:()V
26: aload 7
ifnull 3
27: aload 0
aload 8
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
pop
28: goto 3
29: StackMap locals:
StackMap stack:
aload 10
astore 24
30: aload 7
ifnull 32
31: aload 0
aload 8
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
pop
32: StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos java.lang.Object org.h2.mvstore.CursorPos org.h2.mvstore.Page int org.h2.mvstore.MVMap$Decision top top top top top top top top top java.lang.Object
StackMap stack:
aload 24
areturn
33: StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos java.lang.Object org.h2.mvstore.CursorPos org.h2.mvstore.Page int org.h2.mvstore.MVMap$Decision
StackMap stack:
iload 13
ifge 42
34: aload 6
aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
if_acmpeq 39
35: aload 3
invokevirtual org.h2.mvstore.MVMap$DecisionMaker.reset:()V
36: aload 7
ifnull 3
37: aload 0
aload 8
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
pop
38: goto 3
39: StackMap locals:
StackMap stack:
aload 7
ifnull 41
40: aload 0
aload 8
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
pop
41: StackMap locals:
StackMap stack:
aconst_null
areturn
42: StackMap locals:
StackMap stack:
aload 12
invokevirtual org.h2.mvstore.Page.getTotalCount:()J
lconst_1
lcmp
ifne 55
aload 11
ifnull 55
43: StackMap locals:
StackMap stack:
aload 11
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
astore 12
44: aload 11
getfield org.h2.mvstore.CursorPos.index:I
istore 13
45: aload 11
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 11
46: aload 12
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
istore 15
start local 15 47: iload 15
ifne 48
aload 11
ifnonnull 43
48: StackMap locals: int
StackMap stack:
iload 15
iconst_1
if_icmpgt 55
49: iload 15
iconst_1
if_icmpne 53
50: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 51
iload 13
iconst_1
if_icmple 51
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
51: StackMap locals:
StackMap stack:
aload 12
iconst_1
iload 13
isub
invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
astore 12
52: goto 91
53: StackMap locals:
StackMap stack:
aload 0
invokestatic org.h2.mvstore.Page.createEmptyLeaf:(Lorg/h2/mvstore/MVMap;)Lorg/h2/mvstore/Page;
astore 12
54: goto 91
end local 15 55: StackMap locals:
StackMap stack:
aload 12
invokevirtual org.h2.mvstore.Page.copy:()Lorg/h2/mvstore/Page;
astore 12
56: aload 12
iload 13
invokevirtual org.h2.mvstore.Page.remove:(I)V
57: goto 91
58: StackMap locals:
StackMap stack:
aload 3
aload 10
aload 2
invokevirtual org.h2.mvstore.MVMap$DecisionMaker.selectValue:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
astore 2
59: aload 12
invokevirtual org.h2.mvstore.Page.copy:()Lorg/h2/mvstore/Page;
astore 12
60: iload 13
ifge 90
61: aload 12
iload 13
ineg
iconst_1
isub
aload 1
aload 2
invokevirtual org.h2.mvstore.Page.insertLeaf:(ILjava/lang/Object;Ljava/lang/Object;)V
62: goto 83
start local 15 63: StackMap locals: int
StackMap stack:
aload 12
invokevirtual org.h2.mvstore.Page.getTotalCount:()J
lstore 16
start local 16 64: iload 15
iconst_1
ishr
istore 18
start local 18 65: aload 12
iload 18
invokevirtual org.h2.mvstore.Page.getKey:(I)Ljava/lang/Object;
astore 19
start local 19 66: aload 12
iload 18
invokevirtual org.h2.mvstore.Page.split:(I)Lorg/h2/mvstore/Page;
astore 20
start local 20 67: aload 4
dup
getfield org.h2.mvstore.MVMap$IntValueHolder.value:I
aload 12
invokevirtual org.h2.mvstore.Page.getMemory:()I
aload 20
invokevirtual org.h2.mvstore.Page.getMemory:()I
iadd
iadd
putfield org.h2.mvstore.MVMap$IntValueHolder.value:I
68: aload 11
ifnonnull 76
69: iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 19
aastore
astore 21
start local 21 70: iconst_2
anewarray org.h2.mvstore.Page$PageReference
dup
iconst_0
71: new org.h2.mvstore.Page$PageReference
dup
aload 12
invokespecial org.h2.mvstore.Page$PageReference.<init>:(Lorg/h2/mvstore/Page;)V
aastore
dup
iconst_1
72: new org.h2.mvstore.Page$PageReference
dup
aload 20
invokespecial org.h2.mvstore.Page$PageReference.<init>:(Lorg/h2/mvstore/Page;)V
aastore
73: astore 22
start local 22 74: aload 0
aload 21
aload 22
lload 16
iconst_0
invokestatic org.h2.mvstore.Page.createNode:(Lorg/h2/mvstore/MVMap;[Ljava/lang/Object;[Lorg/h2/mvstore/Page$PageReference;JI)Lorg/h2/mvstore/Page;
astore 12
75: goto 91
end local 22 end local 21 76: StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos java.lang.Object org.h2.mvstore.CursorPos org.h2.mvstore.Page int org.h2.mvstore.MVMap$Decision int long int java.lang.Object org.h2.mvstore.Page
StackMap stack:
aload 12
astore 21
start local 21 77: aload 11
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
astore 12
78: aload 11
getfield org.h2.mvstore.CursorPos.index:I
istore 13
79: aload 11
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 11
80: aload 12
invokevirtual org.h2.mvstore.Page.copy:()Lorg/h2/mvstore/Page;
astore 12
81: aload 12
iload 13
aload 20
invokevirtual org.h2.mvstore.Page.setChild:(ILorg/h2/mvstore/Page;)V
82: aload 12
iload 13
aload 19
aload 21
invokevirtual org.h2.mvstore.Page.insertNode:(ILjava/lang/Object;Lorg/h2/mvstore/Page;)V
end local 21 end local 20 end local 19 end local 18 end local 16 end local 15 83: StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos java.lang.Object org.h2.mvstore.CursorPos org.h2.mvstore.Page int org.h2.mvstore.MVMap$Decision
StackMap stack:
aload 12
invokevirtual org.h2.mvstore.Page.getKeyCount:()I
dup
istore 15
start local 15 84: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getKeysPerPage:()I
if_icmpgt 63
85: aload 12
invokevirtual org.h2.mvstore.Page.getMemory:()I
i2l
aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getMaxPageSize:()J
lcmp
ifle 91
86: iload 15
aload 12
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 87
iconst_1
goto 88
StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos java.lang.Object org.h2.mvstore.CursorPos org.h2.mvstore.Page int org.h2.mvstore.MVMap$Decision int
StackMap stack: int
87: iconst_2
88: StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos java.lang.Object org.h2.mvstore.CursorPos org.h2.mvstore.Page int org.h2.mvstore.MVMap$Decision int
StackMap stack: int int
if_icmpgt 63
end local 15 89: goto 91
90: StackMap locals:
StackMap stack:
aload 12
iload 13
aload 2
invokevirtual org.h2.mvstore.Page.setValue:(ILjava/lang/Object;)Ljava/lang/Object;
pop
91: StackMap locals:
StackMap stack:
aload 11
aload 12
aload 4
invokestatic org.h2.mvstore.MVMap.replacePage:(Lorg/h2/mvstore/CursorPos;Lorg/h2/mvstore/Page;Lorg/h2/mvstore/MVMap$IntValueHolder;)Lorg/h2/mvstore/Page;
astore 8
92: aload 7
ifnonnull 104
93: aload 0
aload 6
aload 8
iload 5
invokevirtual org.h2.mvstore.MVMap.updateRoot:(Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/Page;I)Z
ifne 98
94: aload 3
invokevirtual org.h2.mvstore.MVMap$DecisionMaker.reset:()V
95: aload 7
ifnull 3
96: aload 0
aload 8
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
pop
97: goto 3
98: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.notifyWaiters:()V
end local 14 end local 13 end local 12 end local 11 99: goto 104
end local 10 end local 9 StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page
StackMap stack: java.lang.Throwable
100: astore 23
101: aload 7
ifnull 103
102: aload 0
aload 8
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
pop
103: StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page top top top top top top top top top top top top top top java.lang.Throwable
StackMap stack:
aload 23
athrow
start local 9 start local 10 104: StackMap locals: org.h2.mvstore.MVMap java.lang.Object java.lang.Object org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$IntValueHolder int org.h2.mvstore.RootReference org.h2.mvstore.RootReference org.h2.mvstore.Page org.h2.mvstore.CursorPos java.lang.Object
StackMap stack:
aload 7
ifnull 109
105: aload 0
aload 8
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
pop
106: goto 109
107: StackMap locals:
StackMap stack:
aload 9
getfield org.h2.mvstore.CursorPos.page:Lorg/h2/mvstore/Page;
invokevirtual org.h2.mvstore.Page.removePage:()V
108: aload 9
getfield org.h2.mvstore.CursorPos.parent:Lorg/h2/mvstore/CursorPos;
astore 9
109: StackMap locals:
StackMap stack:
aload 9
ifnonnull 107
110: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
invokevirtual org.h2.mvstore.MVStore.getFileStore:()Lorg/h2/mvstore/FileStore;
ifnull 112
111: aload 0
getfield org.h2.mvstore.MVMap.store:Lorg/h2/mvstore/MVStore;
aload 4
getfield org.h2.mvstore.MVMap$IntValueHolder.value:I
invokevirtual org.h2.mvstore.MVStore.registerUnsavedPage:(I)V
112: StackMap locals:
StackMap stack:
aload 10
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 113 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 113 1 key TK;
0 113 2 value TV;
0 113 3 decisionMaker Lorg/h2/mvstore/MVMap$DecisionMaker<-TV;>;
2 113 4 unsavedMemoryHolder Lorg/h2/mvstore/MVMap$IntValueHolder;
3 113 5 attempt I
4 113 6 rootReference Lorg/h2/mvstore/RootReference;
5 113 7 lockedRootReference Lorg/h2/mvstore/RootReference;
9 113 8 rootPage Lorg/h2/mvstore/Page;
14 100 9 tip Lorg/h2/mvstore/CursorPos;
104 113 9 tip Lorg/h2/mvstore/CursorPos;
18 100 10 result TV;
104 113 10 result TV;
11 99 11 pos Lorg/h2/mvstore/CursorPos;
12 99 12 p Lorg/h2/mvstore/Page;
13 99 13 index I
19 99 14 decision Lorg/h2/mvstore/MVMap$Decision;
47 55 15 keyCount I
63 83 15 keyCount I
84 89 15 keyCount I
64 83 16 totalCount J
65 83 18 at I
66 83 19 k Ljava/lang/Object;
67 83 20 split Lorg/h2/mvstore/Page;
70 76 21 keys [Ljava/lang/Object;
74 76 22 children [Lorg/h2/mvstore/Page$PageReference;
77 83 21 c Lorg/h2/mvstore/Page;
Exception table:
from to target type
10 21 100 any
24 26 100 any
29 30 100 any
33 36 100 any
42 95 100 any
98 100 100 any
Signature: (TK;TV;Lorg/h2/mvstore/MVMap$DecisionMaker<-TV;>;)TV;
MethodParameters:
Name Flags
key
value
decisionMaker
private org.h2.mvstore.RootReference lockRoot(org.h2.mvstore.RootReference, int);
descriptor: (Lorg/h2/mvstore/RootReference;I)Lorg/h2/mvstore/RootReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
iinc 2 1
invokevirtual org.h2.mvstore.MVMap.tryLock:(Lorg/h2/mvstore/RootReference;I)Lorg/h2/mvstore/RootReference;
astore 3
start local 3 1: aload 3
ifnull 3
2: aload 3
areturn
3: StackMap locals: org.h2.mvstore.RootReference
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 1
end local 3 4: goto 0
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 5 1 rootReference Lorg/h2/mvstore/RootReference;
0 5 2 attempt I
1 4 3 lockedRootReference Lorg/h2/mvstore/RootReference;
MethodParameters:
Name Flags
rootReference
attempt
private org.h2.mvstore.RootReference tryLock(org.h2.mvstore.RootReference, int);
descriptor: (Lorg/h2/mvstore/RootReference;I)Lorg/h2/mvstore/RootReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=9, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.h2.mvstore.RootReference.lockedForUpdate:Z
ifne 4
1: new org.h2.mvstore.RootReference
dup
aload 1
iload 2
invokespecial org.h2.mvstore.RootReference.<init>:(Lorg/h2/mvstore/RootReference;I)V
astore 3
start local 3 2: aload 0
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
aload 1
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
ifeq 4
3: aload 3
areturn
end local 3 4: StackMap locals:
StackMap stack:
aload 1
getfield org.h2.mvstore.RootReference.previous:Lorg/h2/mvstore/RootReference;
astore 3
start local 3 5: iconst_1
istore 4
start local 4 6: aload 3
ifnull 15
7: aload 1
getfield org.h2.mvstore.RootReference.updateAttemptCounter:J
8: aload 3
getfield org.h2.mvstore.RootReference.updateAttemptCounter:J
9: lsub
lstore 5
start local 5 10: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 11
lload 5
lconst_0
lcmp
ifge 11
new java.lang.AssertionError
dup
lload 5
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
11: StackMap locals: org.h2.mvstore.RootReference int long
StackMap stack:
aload 1
getfield org.h2.mvstore.RootReference.updateCounter:J
aload 3
getfield org.h2.mvstore.RootReference.updateCounter:J
lsub
lstore 7
start local 7 12: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 13
lload 7
lconst_0
lcmp
ifge 13
new java.lang.AssertionError
dup
lload 7
invokespecial java.lang.AssertionError.<init>:(J)V
athrow
13: StackMap locals: long
StackMap stack:
getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 14
lload 5
lload 7
lcmp
ifge 14
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
lload 5
invokestatic java.lang.String.valueOf:(J)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc " >= "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 7
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
14: StackMap locals:
StackMap stack:
iload 4
lload 5
lconst_1
ladd
lload 7
lconst_1
ladd
ldiv
l2i
iadd
istore 4
end local 7 end local 5 15: StackMap locals:
StackMap stack:
iload 2
iconst_4
if_icmple 33
16: iload 2
bipush 12
if_icmpgt 19
17: invokestatic java.lang.Thread.yield:()V
18: goto 33
StackMap locals:
StackMap stack:
19: iload 2
bipush 70
iconst_2
iload 4
imul
isub
if_icmpgt 24
20: iload 4
i2l
invokestatic java.lang.Thread.sleep:(J)V
21: goto 33
StackMap locals:
StackMap stack: java.lang.InterruptedException
22: astore 5
start local 5 23: new java.lang.RuntimeException
dup
aload 5
invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 5 24: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.MVMap.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
25: aload 0
iconst_1
putfield org.h2.mvstore.MVMap.notificationRequested:Z
26: aload 0
getfield org.h2.mvstore.MVMap.lock:Ljava/lang/Object;
ldc 5
invokevirtual java.lang.Object.wait:(J)V
27: goto 29
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.RootReference int org.h2.mvstore.RootReference int java.lang.Object
StackMap stack: java.lang.InterruptedException
28: pop
29: StackMap locals:
StackMap stack:
aload 5
monitorexit
30: goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
31: aload 5
monitorexit
32: athrow
33: StackMap locals:
StackMap stack:
aconst_null
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 34 1 rootReference Lorg/h2/mvstore/RootReference;
0 34 2 attempt I
2 4 3 lockedRootReference Lorg/h2/mvstore/RootReference;
5 34 3 oldRootReference Lorg/h2/mvstore/RootReference;
6 34 4 contention I
10 15 5 updateAttemptCounter J
12 15 7 updateCounter J
23 24 5 ex Ljava/lang/InterruptedException;
Exception table:
from to target type
20 21 22 Class java.lang.InterruptedException
26 27 28 Class java.lang.InterruptedException
25 30 31 any
31 32 31 any
MethodParameters:
Name Flags
rootReference
attempt
private org.h2.mvstore.RootReference unlockRoot();
descriptor: ()Lorg/h2/mvstore/RootReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
iconst_m1
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/RootReference;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
private org.h2.mvstore.RootReference unlockRoot(org.h2.mvstore.Page);
descriptor: (Lorg/h2/mvstore/Page;)Lorg/h2/mvstore/RootReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_m1
invokevirtual org.h2.mvstore.MVMap.unlockRoot:(Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/RootReference;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 1 1 newRootPage Lorg/h2/mvstore/Page;
MethodParameters:
Name Flags
newRootPage
private org.h2.mvstore.RootReference unlockRoot(org.h2.mvstore.Page, int);
descriptor: (Lorg/h2/mvstore/Page;I)Lorg/h2/mvstore/RootReference;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.MVMap.getRoot:()Lorg/h2/mvstore/RootReference;
astore 5
start local 5 1: getstatic org.h2.mvstore.MVMap.$assertionsDisabled:Z
ifne 2
aload 5
getfield org.h2.mvstore.RootReference.lockedForUpdate:Z
ifne 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page int top top org.h2.mvstore.RootReference
StackMap stack:
new org.h2.mvstore.RootReference
dup
aload 5
3: aload 1
ifnonnull 4
aload 5
getfield org.h2.mvstore.RootReference.root:Lorg/h2/mvstore/Page;
goto 5
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page int top top org.h2.mvstore.RootReference
StackMap stack: new 2 new 2 org.h2.mvstore.RootReference
4: aload 1
5: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page int top top org.h2.mvstore.RootReference
StackMap stack: new 2 new 2 org.h2.mvstore.RootReference org.h2.mvstore.Page
iload 2
iconst_m1
if_icmpne 6
aload 5
invokevirtual org.h2.mvstore.RootReference.getAppendCounter:()I
goto 7
StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page int top top org.h2.mvstore.RootReference
StackMap stack: new 2 new 2 org.h2.mvstore.RootReference org.h2.mvstore.Page
6: iload 2
7: StackMap locals: org.h2.mvstore.MVMap org.h2.mvstore.Page int top top org.h2.mvstore.RootReference
StackMap stack: new 2 new 2 org.h2.mvstore.RootReference org.h2.mvstore.Page int
iconst_0
8: invokespecial org.h2.mvstore.RootReference.<init>:(Lorg/h2/mvstore/RootReference;Lorg/h2/mvstore/Page;IZ)V
astore 3
start local 3 9: aload 0
getfield org.h2.mvstore.MVMap.root:Ljava/util/concurrent/atomic/AtomicReference;
aload 5
aload 3
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
istore 4
end local 5 start local 4 10: iload 4
ifeq 0
11: aload 0
invokevirtual org.h2.mvstore.MVMap.notifyWaiters:()V
12: aload 3
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
0 13 1 newRootPage Lorg/h2/mvstore/Page;
0 13 2 appendCounter I
9 13 3 updatedRootReference Lorg/h2/mvstore/RootReference;
10 13 4 success Z
1 10 5 rootReference Lorg/h2/mvstore/RootReference;
MethodParameters:
Name Flags
newRootPage
appendCounter
private void notifyWaiters();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.MVMap.notificationRequested:Z
ifeq 8
1: aload 0
getfield org.h2.mvstore.MVMap.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
2: aload 0
iconst_0
putfield org.h2.mvstore.MVMap.notificationRequested:Z
3: aload 0
getfield org.h2.mvstore.MVMap.lock:Ljava/lang/Object;
invokevirtual java.lang.Object.notify:()V
4: aload 1
monitorexit
5: goto 8
StackMap locals: org.h2.mvstore.MVMap java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lorg/h2/mvstore/MVMap<TK;TV;>;
Exception table:
from to target type
2 5 6 any
6 7 6 any
private static org.h2.mvstore.CursorPos traverseDown(org.h2.mvstore.Page, java.lang.Object);
descriptor: (Lorg/h2/mvstore/Page;Ljava/lang/Object;)Lorg/h2/mvstore/CursorPos;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: goto 7
2: StackMap locals: org.h2.mvstore.CursorPos
StackMap stack:
aload 0
aload 1
invokevirtual org.h2.mvstore.Page.binarySearch:(Ljava/lang/Object;)I
iconst_1
iadd
istore 3
start local 3 3: iload 3
ifge 5
4: iload 3
ineg
istore 3
5: StackMap locals: int
StackMap stack:
new org.h2.mvstore.CursorPos
dup
aload 0
iload 3
aload 2
invokespecial org.h2.mvstore.CursorPos.<init>:(Lorg/h2/mvstore/Page;ILorg/h2/mvstore/CursorPos;)V
astore 2
6: aload 0
iload 3
invokevirtual org.h2.mvstore.Page.getChildPage:(I)Lorg/h2/mvstore/Page;
astore 0
end local 3 7: StackMap locals:
StackMap stack:
aload 0
invokevirtual org.h2.mvstore.Page.isLeaf:()Z
ifeq 2
8: new org.h2.mvstore.CursorPos
dup
aload 0
aload 0
aload 1
invokevirtual org.h2.mvstore.Page.binarySearch:(Ljava/lang/Object;)I
aload 2
invokespecial org.h2.mvstore.CursorPos.<init>:(Lorg/h2/mvstore/Page;ILorg/h2/mvstore/CursorPos;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 p Lorg/h2/mvstore/Page;
0 9 1 key Ljava/lang/Object;
1 9 2 pos Lorg/h2/mvstore/CursorPos;
3 7 3 index I
MethodParameters:
Name Flags
p
key
static int[] $SWITCH_TABLE$org$h2$mvstore$MVMap$Decision();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.h2.mvstore.MVMap.$SWITCH_TABLE$org$h2$mvstore$MVMap$Decision:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.h2.mvstore.MVMap$Decision.values:()[Lorg/h2/mvstore/MVMap$Decision;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.h2.mvstore.MVMap$Decision.ABORT:Lorg/h2/mvstore/MVMap$Decision;
invokevirtual org.h2.mvstore.MVMap$Decision.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.h2.mvstore.MVMap$Decision.PUT:Lorg/h2/mvstore/MVMap$Decision;
invokevirtual org.h2.mvstore.MVMap$Decision.ordinal:()I
iconst_3
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.h2.mvstore.MVMap$Decision.REMOVE:Lorg/h2/mvstore/MVMap$Decision;
invokevirtual org.h2.mvstore.MVMap$Decision.ordinal:()I
iconst_2
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.h2.mvstore.MVMap$Decision.REPEAT:Lorg/h2/mvstore/MVMap$Decision;
invokevirtual org.h2.mvstore.MVMap$Decision.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic org.h2.mvstore.MVMap.$SWITCH_TABLE$org$h2$mvstore$MVMap$Decision:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
}
Signature: <K:Ljava/lang/Object;V:Ljava/lang/Object;>Ljava/util/AbstractMap<TK;TV;>;Ljava/util/concurrent/ConcurrentMap<TK;TV;>;
SourceFile: "MVMap.java"
NestMembers:
org.h2.mvstore.MVMap$1 org.h2.mvstore.MVMap$2 org.h2.mvstore.MVMap$2$1 org.h2.mvstore.MVMap$3 org.h2.mvstore.MVMap$BasicBuilder org.h2.mvstore.MVMap$Builder org.h2.mvstore.MVMap$Decision org.h2.mvstore.MVMap$DecisionMaker org.h2.mvstore.MVMap$DecisionMaker$1 org.h2.mvstore.MVMap$DecisionMaker$2 org.h2.mvstore.MVMap$DecisionMaker$3 org.h2.mvstore.MVMap$DecisionMaker$4 org.h2.mvstore.MVMap$DecisionMaker$5 org.h2.mvstore.MVMap$EqualsDecisionMaker org.h2.mvstore.MVMap$IntValueHolder org.h2.mvstore.MVMap$MapBuilder
InnerClasses:
public abstract Entry = java.util.Map$Entry of java.util.Map
org.h2.mvstore.MVMap$1
org.h2.mvstore.MVMap$2
org.h2.mvstore.MVMap$3
public abstract BasicBuilder = org.h2.mvstore.MVMap$BasicBuilder of org.h2.mvstore.MVMap
public Builder = org.h2.mvstore.MVMap$Builder of org.h2.mvstore.MVMap
public final Decision = org.h2.mvstore.MVMap$Decision of org.h2.mvstore.MVMap
public abstract DecisionMaker = org.h2.mvstore.MVMap$DecisionMaker of org.h2.mvstore.MVMap
private final EqualsDecisionMaker = org.h2.mvstore.MVMap$EqualsDecisionMaker of org.h2.mvstore.MVMap
private final IntValueHolder = org.h2.mvstore.MVMap$IntValueHolder of org.h2.mvstore.MVMap
public abstract MapBuilder = org.h2.mvstore.MVMap$MapBuilder of org.h2.mvstore.MVMap
public final TxCounter = org.h2.mvstore.MVStore$TxCounter of org.h2.mvstore.MVStore
public final PageReference = org.h2.mvstore.Page$PageReference of org.h2.mvstore.Page