class org.h2.mvstore.tx.TransactionStore$2 implements java.util.Iterator<org.h2.mvstore.tx.TransactionStore$Change>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.h2.mvstore.tx.TransactionStore$2
super_class: java.lang.Object
{
private long logId;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private org.h2.mvstore.tx.TransactionStore$Change current;
descriptor: Lorg/h2/mvstore/tx/TransactionStore$Change;
flags: (0x0002) ACC_PRIVATE
final org.h2.mvstore.tx.TransactionStore this$0;
descriptor: Lorg/h2/mvstore/tx/TransactionStore;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final org.h2.mvstore.tx.Transaction val$t;
descriptor: Lorg/h2/mvstore/tx/Transaction;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final long val$toLogId;
descriptor: J
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final org.h2.mvstore.MVMap val$undoLog;
descriptor: Lorg/h2/mvstore/MVMap;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(org.h2.mvstore.tx.TransactionStore, long, org.h2.mvstore.tx.Transaction, long, org.h2.mvstore.MVMap);
descriptor: (Lorg/h2/mvstore/tx/TransactionStore;JLorg/h2/mvstore/tx/Transaction;JLorg/h2/mvstore/MVMap;)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=6
start local 0 0: aload 0
aload 1
putfield org.h2.mvstore.tx.TransactionStore$2.this$0:Lorg/h2/mvstore/tx/TransactionStore;
aload 0
aload 4
putfield org.h2.mvstore.tx.TransactionStore$2.val$t:Lorg/h2/mvstore/tx/Transaction;
aload 0
lload 5
putfield org.h2.mvstore.tx.TransactionStore$2.val$toLogId:J
aload 0
aload 7
putfield org.h2.mvstore.tx.TransactionStore$2.val$undoLog:Lorg/h2/mvstore/MVMap;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
lload 2
lconst_1
lsub
putfield org.h2.mvstore.tx.TransactionStore$2.logId:J
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/mvstore/tx/TransactionStore$2;
MethodParameters:
Name Flags
this$0 final
val$maxLogId final
val$t final
val$toLogId final
val$undoLog final
private void fetchNext();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=7, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.val$t:Lorg/h2/mvstore/tx/Transaction;
invokevirtual org.h2.mvstore.tx.Transaction.getId:()I
istore 1
start local 1 1: goto 20
2: StackMap locals: int
StackMap stack:
iload 1
aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.logId:J
invokestatic org.h2.mvstore.tx.TransactionStore.getOperationId:(IJ)J
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
astore 2
start local 2 3: aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.val$undoLog:Lorg/h2/mvstore/MVMap;
aload 2
invokevirtual org.h2.mvstore.MVMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Object[]
astore 3
start local 3 4: aload 0
dup
getfield org.h2.mvstore.tx.TransactionStore$2.logId:J
lconst_1
lsub
putfield org.h2.mvstore.tx.TransactionStore$2.logId:J
5: aload 3
ifnonnull 11
6: aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.val$undoLog:Lorg/h2/mvstore/MVMap;
aload 2
invokevirtual org.h2.mvstore.MVMap.floorKey:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Long
astore 2
7: aload 2
ifnull 21
aload 2
invokevirtual java.lang.Long.longValue:()J
invokestatic org.h2.mvstore.tx.TransactionStore.getTransactionId:(J)I
iload 1
if_icmpeq 9
8: goto 21
9: StackMap locals: java.lang.Long java.lang.Object[]
StackMap stack:
aload 0
aload 2
invokevirtual java.lang.Long.longValue:()J
invokestatic org.h2.mvstore.tx.TransactionStore.getLogId:(J)J
putfield org.h2.mvstore.tx.TransactionStore$2.logId:J
10: goto 20
11: StackMap locals:
StackMap stack:
aload 3
iconst_0
aaload
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 4
start local 4 12: aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.this$0:Lorg/h2/mvstore/tx/TransactionStore;
iload 4
invokevirtual org.h2.mvstore.tx.TransactionStore.openMap:(I)Lorg/h2/mvstore/MVMap;
astore 5
start local 5 13: aload 5
ifnull 20
14: aload 3
iconst_2
aaload
checkcast org.h2.value.VersionedValue
astore 6
start local 6 15: aload 0
16: new org.h2.mvstore.tx.TransactionStore$Change
dup
aload 5
invokevirtual org.h2.mvstore.MVMap.getName:()Ljava/lang/String;
aload 3
iconst_1
aaload
aload 6
ifnonnull 17
aconst_null
goto 18
StackMap locals: org.h2.mvstore.tx.TransactionStore$2 int java.lang.Long java.lang.Object[] int org.h2.mvstore.MVMap org.h2.value.VersionedValue
StackMap stack: org.h2.mvstore.tx.TransactionStore$2 new 16 new 16 java.lang.String java.lang.Object
17: aload 6
invokevirtual org.h2.value.VersionedValue.getCurrentValue:()Ljava/lang/Object;
StackMap locals: org.h2.mvstore.tx.TransactionStore$2 int java.lang.Long java.lang.Object[] int org.h2.mvstore.MVMap org.h2.value.VersionedValue
StackMap stack: org.h2.mvstore.tx.TransactionStore$2 new 16 new 16 java.lang.String java.lang.Object java.lang.Object
18: invokespecial org.h2.mvstore.tx.TransactionStore$Change.<init>:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
putfield org.h2.mvstore.tx.TransactionStore$2.current:Lorg/h2/mvstore/tx/TransactionStore$Change;
19: return
end local 6 end local 5 end local 4 end local 3 end local 2 20: StackMap locals: org.h2.mvstore.tx.TransactionStore$2 int
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.logId:J
aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.val$toLogId:J
lcmp
ifge 2
21: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.h2.mvstore.tx.TransactionStore$2.current:Lorg/h2/mvstore/tx/TransactionStore$Change;
22: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Lorg/h2/mvstore/tx/TransactionStore$2;
1 23 1 transactionId I
3 20 2 undoKey Ljava/lang/Long;
4 20 3 op [Ljava/lang/Object;
12 20 4 mapId I
13 20 5 m Lorg/h2/mvstore/MVMap<Ljava/lang/Object;Lorg/h2/value/VersionedValue;>;
15 20 6 oldValue Lorg/h2/value/VersionedValue;
public boolean hasNext();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.current:Lorg/h2/mvstore/tx/TransactionStore$Change;
ifnonnull 2
1: aload 0
invokevirtual org.h2.mvstore.tx.TransactionStore$2.fetchNext:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.current:Lorg/h2/mvstore/tx/TransactionStore$Change;
ifnull 3
iconst_1
ireturn
StackMap locals:
StackMap stack:
3: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/mvstore/tx/TransactionStore$2;
public org.h2.mvstore.tx.TransactionStore$Change next();
descriptor: ()Lorg/h2/mvstore/tx/TransactionStore$Change;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual org.h2.mvstore.tx.TransactionStore$2.hasNext:()Z
ifne 2
1: ldc "no data"
invokestatic org.h2.mvstore.DataUtils.newUnsupportedOperationException:(Ljava/lang/String;)Ljava/lang/UnsupportedOperationException;
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.mvstore.tx.TransactionStore$2.current:Lorg/h2/mvstore/tx/TransactionStore$Change;
astore 1
start local 1 3: aload 0
aconst_null
putfield org.h2.mvstore.tx.TransactionStore$2.current:Lorg/h2/mvstore/tx/TransactionStore$Change;
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/mvstore/tx/TransactionStore$2;
3 5 1 result Lorg/h2/mvstore/tx/TransactionStore$Change;
public void remove();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc "remove"
invokestatic org.h2.mvstore.DataUtils.newUnsupportedOperationException:(Ljava/lang/String;)Ljava/lang/UnsupportedOperationException;
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/mvstore/tx/TransactionStore$2;
public java.lang.Object next();
descriptor: ()Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=1, locals=1, args_size=1
0: aload 0
invokevirtual org.h2.mvstore.tx.TransactionStore$2.next:()Lorg/h2/mvstore/tx/TransactionStore$Change;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Ljava/lang/Object;Ljava/util/Iterator<Lorg/h2/mvstore/tx/TransactionStore$Change;>;
SourceFile: "TransactionStore.java"
EnclosingMethod: org.h2.mvstore.tx.TransactionStore.getChanges:(Lorg/h2/mvstore/tx/Transaction;JJ)Ljava/util/Iterator;
NestHost: org.h2.mvstore.tx.TransactionStore
InnerClasses:
org.h2.mvstore.tx.TransactionStore$2
public Change = org.h2.mvstore.tx.TransactionStore$Change of org.h2.mvstore.tx.TransactionStore