class org.h2.store.fs.FileNioMemData
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.h2.store.fs.FileNioMemData
super_class: java.lang.Object
{
private static final int CACHE_MIN_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int BLOCK_SIZE_SHIFT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private static final int BLOCK_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65536
private static final int BLOCK_SIZE_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 65535
private static final java.nio.ByteBuffer COMPRESSED_EMPTY_BLOCK;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.ThreadLocal<org.h2.compress.CompressLZF> LZF_THREAD_LOCAL;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<Lorg/h2/compress/CompressLZF;>;
private static final java.lang.ThreadLocal<byte[]> COMPRESS_OUT_BUF_THREAD_LOCAL;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/ThreadLocal<[B>;
final int nameHashCode;
descriptor: I
flags: (0x0010) ACC_FINAL
private final org.h2.store.fs.FileNioMemData$CompressLaterCache<org.h2.store.fs.FileNioMemData$CompressItem, org.h2.store.fs.FileNioMemData$CompressItem> compressLaterCache;
descriptor: Lorg/h2/store/fs/FileNioMemData$CompressLaterCache;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Lorg/h2/store/fs/FileNioMemData$CompressLaterCache<Lorg/h2/store/fs/FileNioMemData$CompressItem;Lorg/h2/store/fs/FileNioMemData$CompressItem;>;
private java.lang.String name;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private final boolean compress;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final float compressLaterCachePercent;
descriptor: F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private long length;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private java.util.concurrent.atomic.AtomicReference<java.nio.ByteBuffer>[] buffers;
descriptor: [Ljava/util/concurrent/atomic/AtomicReference;
flags: (0x0002) ACC_PRIVATE
Signature: [Ljava/util/concurrent/atomic/AtomicReference<Ljava/nio/ByteBuffer;>;
private long lastModified;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private boolean isReadOnly;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private boolean isLockedExclusive;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private int sharedLockCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.util.concurrent.locks.ReentrantReadWriteLock rwLock;
descriptor: Ljava/util/concurrent/locks/ReentrantReadWriteLock;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=0
0: new org.h2.store.fs.FileNioMemData$1
dup
invokespecial org.h2.store.fs.FileNioMemData$1.<init>:()V
1: putstatic org.h2.store.fs.FileNioMemData.LZF_THREAD_LOCAL:Ljava/lang/ThreadLocal;
2: new org.h2.store.fs.FileNioMemData$2
dup
invokespecial org.h2.store.fs.FileNioMemData$2.<init>:()V
3: putstatic org.h2.store.fs.FileNioMemData.COMPRESS_OUT_BUF_THREAD_LOCAL:Ljava/lang/ThreadLocal;
4: ldc 65536
newarray 8
astore 0
start local 0 5: ldc 131072
newarray 8
astore 1
start local 1 6: new org.h2.compress.CompressLZF
dup
invokespecial org.h2.compress.CompressLZF.<init>:()V
aload 0
ldc 65536
aload 1
iconst_0
invokevirtual org.h2.compress.CompressLZF.compress:([BI[BI)I
istore 2
start local 2 7: iload 2
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
putstatic org.h2.store.fs.FileNioMemData.COMPRESSED_EMPTY_BLOCK:Ljava/nio/ByteBuffer;
8: getstatic org.h2.store.fs.FileNioMemData.COMPRESSED_EMPTY_BLOCK:Ljava/nio/ByteBuffer;
aload 1
iconst_0
iload 2
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
end local 2 end local 1 end local 0 9: return
LocalVariableTable:
Start End Slot Name Signature
5 9 0 n [B
6 9 1 output [B
7 9 2 len I
void <init>(java.lang.String, boolean, float);
descriptor: (Ljava/lang/String;ZF)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
2: new org.h2.store.fs.FileNioMemData$CompressLaterCache
dup
bipush 8
invokespecial org.h2.store.fs.FileNioMemData$CompressLaterCache.<init>:(I)V
putfield org.h2.store.fs.FileNioMemData.compressLaterCache:Lorg/h2/store/fs/FileNioMemData$CompressLaterCache;
3: aload 0
new java.util.concurrent.locks.ReentrantReadWriteLock
dup
invokespecial java.util.concurrent.locks.ReentrantReadWriteLock.<init>:()V
putfield org.h2.store.fs.FileNioMemData.rwLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
4: aload 0
aload 1
putfield org.h2.store.fs.FileNioMemData.name:Ljava/lang/String;
5: aload 0
aload 1
invokevirtual java.lang.String.hashCode:()I
putfield org.h2.store.fs.FileNioMemData.nameHashCode:I
6: aload 0
iload 2
putfield org.h2.store.fs.FileNioMemData.compress:Z
7: aload 0
fload 3
putfield org.h2.store.fs.FileNioMemData.compressLaterCachePercent:F
8: aload 0
iconst_0
anewarray java.util.concurrent.atomic.AtomicReference
putfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
9: aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.h2.store.fs.FileNioMemData.lastModified:J
10: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/h2/store/fs/FileNioMemData;
0 11 1 name Ljava/lang/String;
0 11 2 compress Z
0 11 3 compressLaterCachePercent F
MethodParameters:
Name Flags
name
compress
compressLaterCachePercent
synchronized boolean lockExclusive();
descriptor: ()Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileNioMemData.sharedLockCount:I
ifgt 1
aload 0
getfield org.h2.store.fs.FileNioMemData.isLockedExclusive:Z
ifeq 2
1: StackMap locals:
StackMap stack:
iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield org.h2.store.fs.FileNioMemData.isLockedExclusive:Z
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/store/fs/FileNioMemData;
synchronized boolean lockShared();
descriptor: ()Z
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileNioMemData.isLockedExclusive:Z
ifeq 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
dup
getfield org.h2.store.fs.FileNioMemData.sharedLockCount:I
iconst_1
iadd
putfield org.h2.store.fs.FileNioMemData.sharedLockCount:I
3: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/store/fs/FileNioMemData;
synchronized void unlock();
descriptor: ()V
flags: (0x0020) ACC_SYNCHRONIZED
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileNioMemData.isLockedExclusive:Z
ifeq 3
1: aload 0
iconst_0
putfield org.h2.store.fs.FileNioMemData.isLockedExclusive:Z
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
iconst_0
aload 0
getfield org.h2.store.fs.FileNioMemData.sharedLockCount:I
iconst_1
isub
invokestatic java.lang.Math.max:(II)I
putfield org.h2.store.fs.FileNioMemData.sharedLockCount:I
4: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/h2/store/fs/FileNioMemData;
private void addToCompressLaterCache(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: new org.h2.store.fs.FileNioMemData$CompressItem
dup
aload 0
iload 1
invokespecial org.h2.store.fs.FileNioMemData$CompressItem.<init>:(Lorg/h2/store/fs/FileNioMemData;I)V
astore 2
start local 2 1: aload 0
getfield org.h2.store.fs.FileNioMemData.compressLaterCache:Lorg/h2/store/fs/FileNioMemData$CompressLaterCache;
aload 2
aload 2
invokevirtual org.h2.store.fs.FileNioMemData$CompressLaterCache.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
2: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/store/fs/FileNioMemData;
0 3 1 page I
1 3 2 c Lorg/h2/store/fs/FileNioMemData$CompressItem;
MethodParameters:
Name Flags
page
private java.nio.ByteBuffer expandPage(int);
descriptor: (I)Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
iload 1
aaload
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 2
start local 2 1: aload 2
invokevirtual java.nio.ByteBuffer.capacity:()I
ldc 65536
if_icmpne 3
2: aload 2
areturn
3: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 2
dup
astore 3
monitorenter
4: aload 2
invokevirtual java.nio.ByteBuffer.capacity:()I
ldc 65536
if_icmpne 7
5: aload 2
aload 3
monitorexit
6: areturn
7: StackMap locals: java.nio.ByteBuffer
StackMap stack:
ldc 65536
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
astore 4
start local 4 8: aload 2
getstatic org.h2.store.fs.FileNioMemData.COMPRESSED_EMPTY_BLOCK:Ljava/nio/ByteBuffer;
if_acmpeq 11
9: aload 2
iconst_0
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
10: aload 2
aload 4
invokestatic org.h2.compress.CompressLZF.expand:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)V
11: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 0
getfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
iload 1
aaload
aload 2
aload 4
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
12: aload 4
aload 3
monitorexit
13: areturn
end local 4 14: StackMap locals: org.h2.store.fs.FileNioMemData int java.nio.ByteBuffer java.nio.ByteBuffer
StackMap stack: java.lang.Throwable
aload 3
monitorexit
15: athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lorg/h2/store/fs/FileNioMemData;
0 16 1 page I
1 16 2 d Ljava/nio/ByteBuffer;
8 14 4 out Ljava/nio/ByteBuffer;
Exception table:
from to target type
4 6 14 any
7 13 14 any
14 15 14 any
MethodParameters:
Name Flags
page
void compressPage(int);
descriptor: (I)V
flags: (0x0000)
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
iload 1
aaload
invokevirtual java.util.concurrent.atomic.AtomicReference.get:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
astore 2
start local 2 1: aload 2
dup
astore 3
monitorenter
2: aload 2
invokevirtual java.nio.ByteBuffer.capacity:()I
ldc 65536
if_icmpeq 5
3: aload 3
monitorexit
4: return
5: StackMap locals: java.nio.ByteBuffer java.nio.ByteBuffer
StackMap stack:
getstatic org.h2.store.fs.FileNioMemData.COMPRESS_OUT_BUF_THREAD_LOCAL:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast byte[]
astore 4
start local 4 6: getstatic org.h2.store.fs.FileNioMemData.LZF_THREAD_LOCAL:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast org.h2.compress.CompressLZF
aload 2
iconst_0
aload 4
iconst_0
invokevirtual org.h2.compress.CompressLZF.compress:(Ljava/nio/ByteBuffer;I[BI)I
istore 5
start local 5 7: iload 5
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
astore 6
start local 6 8: aload 6
aload 4
iconst_0
iload 5
invokevirtual java.nio.ByteBuffer.put:([BII)Ljava/nio/ByteBuffer;
pop
9: aload 0
getfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
iload 1
aaload
aload 2
aload 6
invokevirtual java.util.concurrent.atomic.AtomicReference.compareAndSet:(Ljava/lang/Object;Ljava/lang/Object;)Z
pop
end local 6 end local 5 end local 4 10: aload 3
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 3
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lorg/h2/store/fs/FileNioMemData;
0 15 1 page I
1 15 2 d Ljava/nio/ByteBuffer;
6 10 4 compressOutputBuffer [B
7 10 5 len I
8 10 6 out Ljava/nio/ByteBuffer;
Exception table:
from to target type
2 4 12 any
5 11 12 any
12 13 12 any
MethodParameters:
Name Flags
page
void touch(boolean);
descriptor: (Z)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.store.fs.FileNioMemData.isReadOnly:Z
ifne 1
iload 1
ifeq 2
1: StackMap locals:
StackMap stack:
new java.io.IOException
dup
ldc "Read only"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
invokestatic java.lang.System.currentTimeMillis:()J
putfield org.h2.store.fs.FileNioMemData.lastModified:J
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/h2/store/fs/FileNioMemData;
0 4 1 openReadOnly Z
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
openReadOnly
long length();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileNioMemData.length:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/store/fs/FileNioMemData;
void truncate(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=4, locals=9, args_size=2
start local 0 start local 1 0: aload 0
getfield org.h2.store.fs.FileNioMemData.rwLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock:()V
1: aload 0
lload 1
invokevirtual org.h2.store.fs.FileNioMemData.changeLength:(J)V
2: lload 1
ldc 65536
invokestatic org.h2.util.MathUtils.roundUpLong:(JJ)J
lstore 3
start local 3 3: lload 3
lload 1
lcmp
ifeq 17
4: lload 1
bipush 16
lushr
l2i
istore 5
start local 5 5: aload 0
iload 5
invokevirtual org.h2.store.fs.FileNioMemData.expandPage:(I)Ljava/nio/ByteBuffer;
astore 6
start local 6 6: lload 1
ldc 65535
land
l2i
istore 7
start local 7 7: goto 10
8: StackMap locals: org.h2.store.fs.FileNioMemData long long int java.nio.ByteBuffer int
StackMap stack:
aload 6
iload 7
iconst_0
invokevirtual java.nio.ByteBuffer.put:(IB)Ljava/nio/ByteBuffer;
pop
9: iinc 7 1
StackMap locals:
StackMap stack:
10: iload 7
ldc 65536
if_icmplt 8
end local 7 11: aload 0
getfield org.h2.store.fs.FileNioMemData.compress:Z
ifeq 17
12: aload 0
iload 5
invokevirtual org.h2.store.fs.FileNioMemData.addToCompressLaterCache:(I)V
end local 6 end local 5 end local 3 13: goto 17
StackMap locals: org.h2.store.fs.FileNioMemData long
StackMap stack: java.lang.Throwable
14: astore 8
15: aload 0
getfield org.h2.store.fs.FileNioMemData.rwLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
16: aload 8
athrow
17: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.fs.FileNioMemData.rwLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.unlock:()V
18: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lorg/h2/store/fs/FileNioMemData;
0 19 1 newLength J
3 13 3 end J
5 13 5 lastPage I
6 13 6 d Ljava/nio/ByteBuffer;
7 11 7 i I
Exception table:
from to target type
1 14 14 any
MethodParameters:
Name Flags
newLength
private void changeLength(long);
descriptor: (J)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
lload 1
putfield org.h2.store.fs.FileNioMemData.length:J
1: lload 1
ldc 65536
invokestatic org.h2.util.MathUtils.roundUpLong:(JJ)J
lstore 1
2: lload 1
bipush 16
lushr
l2i
istore 3
start local 3 3: iload 3
aload 0
getfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
arraylength
if_icmpeq 14
4: iload 3
anewarray java.util.concurrent.atomic.AtomicReference
astore 4
start local 4 5: aload 0
getfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
iconst_0
aload 4
iconst_0
6: aload 0
getfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
arraylength
aload 4
arraylength
invokestatic java.lang.Math.min:(II)I
7: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 0
getfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
arraylength
istore 5
start local 5 9: goto 12
10: StackMap locals: int java.util.concurrent.atomic.AtomicReference[] int
StackMap stack:
aload 4
iload 5
new java.util.concurrent.atomic.AtomicReference
dup
getstatic org.h2.store.fs.FileNioMemData.COMPRESSED_EMPTY_BLOCK:Ljava/nio/ByteBuffer;
invokespecial java.util.concurrent.atomic.AtomicReference.<init>:(Ljava/lang/Object;)V
aastore
11: iinc 5 1
StackMap locals:
StackMap stack:
12: iload 5
iload 3
if_icmplt 10
end local 5 13: aload 0
aload 4
putfield org.h2.store.fs.FileNioMemData.buffers:[Ljava/util/concurrent/atomic/AtomicReference;
end local 4 14: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.fs.FileNioMemData.compressLaterCache:Lorg/h2/store/fs/FileNioMemData$CompressLaterCache;
bipush 8
iload 3
i2f
15: aload 0
getfield org.h2.store.fs.FileNioMemData.compressLaterCachePercent:F
fmul
ldc 100.0
fdiv
f2i
16: invokestatic java.lang.Math.max:(II)I
invokevirtual org.h2.store.fs.FileNioMemData$CompressLaterCache.setCacheSize:(I)V
17: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lorg/h2/store/fs/FileNioMemData;
0 18 1 len J
3 18 3 blocks I
5 14 4 newBuffers [Ljava/util/concurrent/atomic/AtomicReference;
9 13 5 i I
MethodParameters:
Name Flags
len
long readWrite(long, java.nio.ByteBuffer, int, int, boolean);
descriptor: (JLjava/nio/ByteBuffer;IIZ)J
flags: (0x0000)
Code:
stack=8, locals=19, args_size=6
start local 0 start local 1 start local 3 start local 4 start local 5 start local 6 0: iload 6
ifeq 1
aload 0
getfield org.h2.store.fs.FileNioMemData.rwLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.writeLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$WriteLock;
goto 2
1: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.fs.FileNioMemData.rwLock:Ljava/util/concurrent/locks/ReentrantReadWriteLock;
invokevirtual java.util.concurrent.locks.ReentrantReadWriteLock.readLock:()Ljava/util/concurrent/locks/ReentrantReadWriteLock$ReadLock;
2: StackMap locals:
StackMap stack: java.util.concurrent.locks.Lock
astore 7
start local 7 3: aload 7
invokeinterface java.util.concurrent.locks.Lock.lock:()V
4: lload 1
iload 5
i2l
ladd
lstore 8
start local 8 5: lload 8
aload 0
getfield org.h2.store.fs.FileNioMemData.length:J
lcmp
ifle 35
6: iload 6
ifeq 9
7: aload 0
lload 8
invokevirtual org.h2.store.fs.FileNioMemData.changeLength:(J)V
8: goto 35
9: StackMap locals: java.util.concurrent.locks.Lock long
StackMap stack:
aload 0
getfield org.h2.store.fs.FileNioMemData.length:J
lload 1
lsub
l2i
istore 5
10: goto 35
11: StackMap locals:
StackMap stack:
iload 5
i2l
ldc 65536
lload 1
ldc 65535
land
lsub
invokestatic java.lang.Math.min:(JJ)J
l2i
istore 10
start local 10 12: lload 1
bipush 16
lushr
l2i
istore 11
start local 11 13: aload 0
iload 11
invokevirtual org.h2.store.fs.FileNioMemData.expandPage:(I)Ljava/nio/ByteBuffer;
astore 12
start local 12 14: lload 1
ldc 65535
land
l2i
istore 13
start local 13 15: iload 6
ifeq 23
16: aload 3
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
astore 14
start local 14 17: aload 12
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 15
start local 15 18: aload 14
iload 4
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
19: aload 14
iload 4
iload 10
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
20: aload 15
iload 13
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
21: aload 15
aload 14
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
end local 15 end local 14 22: goto 30
23: StackMap locals: org.h2.store.fs.FileNioMemData long java.nio.ByteBuffer int int int java.util.concurrent.locks.Lock long int int java.nio.ByteBuffer int
StackMap stack:
aload 12
invokevirtual java.nio.ByteBuffer.duplicate:()Ljava/nio/ByteBuffer;
astore 14
start local 14 24: aload 14
iload 13
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
25: aload 14
iload 10
iload 13
iadd
invokevirtual java.nio.ByteBuffer.limit:(I)Ljava/nio/Buffer;
pop
26: aload 3
invokevirtual java.nio.ByteBuffer.position:()I
istore 15
start local 15 27: aload 3
iload 4
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
28: aload 3
aload 14
invokevirtual java.nio.ByteBuffer.put:(Ljava/nio/ByteBuffer;)Ljava/nio/ByteBuffer;
pop
29: aload 3
iload 15
invokevirtual java.nio.ByteBuffer.position:(I)Ljava/nio/Buffer;
pop
end local 15 end local 14 30: StackMap locals:
StackMap stack:
aload 0
getfield org.h2.store.fs.FileNioMemData.compress:Z
ifeq 32
31: aload 0
iload 11
invokevirtual org.h2.store.fs.FileNioMemData.addToCompressLaterCache:(I)V
32: StackMap locals:
StackMap stack:
iload 4
iload 10
iadd
istore 4
33: lload 1
iload 10
i2l
ladd
lstore 1
34: iload 5
iload 10
isub
istore 5
end local 13 end local 12 end local 11 end local 10 35: StackMap locals: org.h2.store.fs.FileNioMemData long java.nio.ByteBuffer int int int java.util.concurrent.locks.Lock long
StackMap stack:
iload 5
ifgt 11
36: lload 1
lstore 17
37: aload 7
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
38: lload 17
lreturn
end local 8 39: StackMap locals: org.h2.store.fs.FileNioMemData long java.nio.ByteBuffer int int int java.util.concurrent.locks.Lock
StackMap stack: java.lang.Throwable
astore 16
40: aload 7
invokeinterface java.util.concurrent.locks.Lock.unlock:()V
41: aload 16
athrow
end local 7 end local 6 end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 42 0 this Lorg/h2/store/fs/FileNioMemData;
0 42 1 pos J
0 42 3 b Ljava/nio/ByteBuffer;
0 42 4 off I
0 42 5 len I
0 42 6 write Z
3 42 7 lock Ljava/util/concurrent/locks/Lock;
5 39 8 end J
12 35 10 l I
13 35 11 page I
14 35 12 block Ljava/nio/ByteBuffer;
15 35 13 blockOffset I
17 22 14 srcTmp Ljava/nio/ByteBuffer;
18 22 15 dstTmp Ljava/nio/ByteBuffer;
24 30 14 tmp Ljava/nio/ByteBuffer;
27 30 15 oldPosition I
Exception table:
from to target type
4 37 39 any
MethodParameters:
Name Flags
pos
b
off
len
write
void setName(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
putfield org.h2.store.fs.FileNioMemData.name:Ljava/lang/String;
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/store/fs/FileNioMemData;
0 2 1 name Ljava/lang/String;
MethodParameters:
Name Flags
name
java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileNioMemData.name:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/store/fs/FileNioMemData;
long getLastModified();
descriptor: ()J
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileNioMemData.lastModified:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/h2/store/fs/FileNioMemData;
boolean canWrite();
descriptor: ()Z
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.h2.store.fs.FileNioMemData.isReadOnly:Z
ifeq 1
iconst_0
goto 2
StackMap locals:
StackMap stack:
1: iconst_1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/h2/store/fs/FileNioMemData;
boolean setReadOnly();
descriptor: ()Z
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
putfield org.h2.store.fs.FileNioMemData.isReadOnly:Z
1: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lorg/h2/store/fs/FileNioMemData;
}
SourceFile: "FilePathNioMem.java"
NestMembers:
org.h2.store.fs.FileNioMemData$1 org.h2.store.fs.FileNioMemData$2 org.h2.store.fs.FileNioMemData$CompressItem org.h2.store.fs.FileNioMemData$CompressLaterCache
InnerClasses:
public ReadLock = java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock of java.util.concurrent.locks.ReentrantReadWriteLock
public WriteLock = java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock of java.util.concurrent.locks.ReentrantReadWriteLock
org.h2.store.fs.FileNioMemData$1
org.h2.store.fs.FileNioMemData$2
CompressItem = org.h2.store.fs.FileNioMemData$CompressItem of org.h2.store.fs.FileNioMemData
CompressLaterCache = org.h2.store.fs.FileNioMemData$CompressLaterCache of org.h2.store.fs.FileNioMemData