public final class org.glassfish.grizzly.nio.DirectByteBufferRecord
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.glassfish.grizzly.nio.DirectByteBufferRecord
super_class: java.lang.Object
{
private static final org.glassfish.grizzly.ThreadCache$CachedTypeIndex<org.glassfish.grizzly.nio.DirectByteBufferRecord> CACHE_IDX;
descriptor: Lorg/glassfish/grizzly/ThreadCache$CachedTypeIndex;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lorg/glassfish/grizzly/ThreadCache$CachedTypeIndex<Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;>;
private java.nio.ByteBuffer directBuffer;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private int sliceOffset;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer directBufferSlice;
descriptor: Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private java.lang.ref.SoftReference<java.nio.ByteBuffer> softRef;
descriptor: Ljava/lang/ref/SoftReference;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/lang/ref/SoftReference<Ljava/nio/ByteBuffer;>;
private java.nio.ByteBuffer[] array;
descriptor: [Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private int arraySize;
descriptor: I
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: ldc "direct-buffer-cache"
1: ldc Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
iconst_1
2: invokestatic org.glassfish.grizzly.ThreadCache.obtainIndex:(Ljava/lang/String;Ljava/lang/Class;I)Lorg/glassfish/grizzly/ThreadCache$CachedTypeIndex;
putstatic org.glassfish.grizzly.nio.DirectByteBufferRecord.CACHE_IDX:Lorg/glassfish/grizzly/ThreadCache$CachedTypeIndex;
3: return
LocalVariableTable:
Start End Slot Name Signature
public static org.glassfish.grizzly.nio.DirectByteBufferRecord get();
descriptor: ()Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=2, args_size=0
0: getstatic org.glassfish.grizzly.nio.DirectByteBufferRecord.CACHE_IDX:Lorg/glassfish/grizzly/ThreadCache$CachedTypeIndex;
invokestatic org.glassfish.grizzly.ThreadCache.getFromCache:(Lorg/glassfish/grizzly/ThreadCache$CachedTypeIndex;)Ljava/lang/Object;
checkcast org.glassfish.grizzly.nio.DirectByteBufferRecord
astore 0
start local 0 1: aload 0
ifnull 3
2: aload 0
areturn
3: StackMap locals: org.glassfish.grizzly.nio.DirectByteBufferRecord
StackMap stack:
new org.glassfish.grizzly.nio.DirectByteBufferRecord
dup
invokespecial org.glassfish.grizzly.nio.DirectByteBufferRecord.<init>:()V
astore 1
start local 1 4: getstatic org.glassfish.grizzly.nio.DirectByteBufferRecord.CACHE_IDX:Lorg/glassfish/grizzly/ThreadCache$CachedTypeIndex;
aload 1
invokestatic org.glassfish.grizzly.ThreadCache.putToCache:(Lorg/glassfish/grizzly/ThreadCache$CachedTypeIndex;Ljava/lang/Object;)Z
pop
5: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
1 6 0 record Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
4 6 1 recordLocal Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
bipush 8
anewarray java.nio.ByteBuffer
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.array:[Ljava/nio/ByteBuffer;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
public java.nio.ByteBuffer getDirectBuffer();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
public java.nio.ByteBuffer getDirectBufferSlice();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
public java.nio.ByteBuffer allocate(int);
descriptor: (I)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.glassfish.grizzly.nio.DirectByteBufferRecord.switchToStrong:()Ljava/nio/ByteBuffer;
dup
astore 2
start local 2 1: ifnull 3
aload 2
invokevirtual java.nio.ByteBuffer.remaining:()I
iload 1
if_icmplt 3
2: aload 2
areturn
3: StackMap locals: java.nio.ByteBuffer
StackMap stack:
iload 1
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
astore 2
4: aload 0
aload 2
invokevirtual org.glassfish.grizzly.nio.DirectByteBufferRecord.reset:(Ljava/nio/ByteBuffer;)V
5: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
0 6 1 size I
1 6 2 byteBuffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
size final
public java.nio.ByteBuffer sliceBuffer();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.limit:()I
istore 1
start local 1 1: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.sliceOffset:I
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.capacity:()I
invokestatic org.glassfish.grizzly.memory.Buffers.setPositionLimit:(Ljava/nio/ByteBuffer;II)V
2: aload 0
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.slice:()Ljava/nio/ByteBuffer;
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
3: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
iconst_0
iload 1
invokestatic org.glassfish.grizzly.memory.Buffers.setPositionLimit:(Ljava/nio/ByteBuffer;II)V
4: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
1 5 1 oldLim I
public void finishBufferSlice();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
ifnull 7
1: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.flip:()Ljava/nio/Buffer;
pop
2: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.remaining:()I
istore 1
start local 1 3: aload 0
dup
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.sliceOffset:I
iload 1
iadd
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.sliceOffset:I
4: iload 1
ifle 6
5: aload 0
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
invokevirtual org.glassfish.grizzly.nio.DirectByteBufferRecord.putToArray:(Ljava/nio/ByteBuffer;)V
6: StackMap locals: int
StackMap stack:
aload 0
aconst_null
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
end local 1 7: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
3 7 1 sliceSz I
public java.nio.ByteBuffer[] getArray();
descriptor: ()[Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.array:[Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
public int getArraySize();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.arraySize:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
public void putToArray(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual org.glassfish.grizzly.nio.DirectByteBufferRecord.ensureArraySize:()V
1: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.array:[Ljava/nio/ByteBuffer;
aload 0
dup
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.arraySize:I
dup_x1
iconst_1
iadd
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.arraySize:I
aload 1
aastore
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
0 3 1 byteBuffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
byteBuffer
public void release();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
ifnull 3
1: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
invokevirtual java.nio.ByteBuffer.clear:()Ljava/nio/Buffer;
pop
2: aload 0
invokevirtual org.glassfish.grizzly.nio.DirectByteBufferRecord.switchToSoft:()V
3: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.array:[Ljava/nio/ByteBuffer;
iconst_0
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.arraySize:I
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;IILjava/lang/Object;)V
4: aload 0
iconst_0
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.arraySize:I
5: aload 0
aconst_null
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
6: aload 0
iconst_0
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.sliceOffset:I
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
private java.nio.ByteBuffer switchToStrong();
descriptor: ()Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
ifnonnull 2
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.softRef:Ljava/lang/ref/SoftReference;
ifnull 2
1: aload 0
aload 0
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.softRef:Ljava/lang/ref/SoftReference;
invokevirtual java.lang.ref.SoftReference.get:()Ljava/lang/Object;
checkcast java.nio.ByteBuffer
dup_x1
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
2: StackMap locals:
StackMap stack:
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
private void switchToSoft();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
ifnull 2
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.softRef:Ljava/lang/ref/SoftReference;
ifnonnull 2
1: aload 0
new java.lang.ref.SoftReference
dup
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
invokespecial java.lang.ref.SoftReference.<init>:(Ljava/lang/Object;)V
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.softRef:Ljava/lang/ref/SoftReference;
2: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
private void reset(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
aload 1
dup_x1
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBufferSlice:Ljava/nio/ByteBuffer;
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.directBuffer:Ljava/nio/ByteBuffer;
1: aload 0
aconst_null
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.softRef:Ljava/lang/ref/SoftReference;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
0 3 1 byteBuffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
byteBuffer
private void ensureArraySize();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.arraySize:I
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.array:[Ljava/nio/ByteBuffer;
arraylength
if_icmpne 2
1: aload 0
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.array:[Ljava/nio/ByteBuffer;
aload 0
getfield org.glassfish.grizzly.nio.DirectByteBufferRecord.arraySize:I
iconst_3
imul
iconst_2
idiv
iconst_1
iadd
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast java.nio.ByteBuffer[]
putfield org.glassfish.grizzly.nio.DirectByteBufferRecord.array:[Ljava/nio/ByteBuffer;
2: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/glassfish/grizzly/nio/DirectByteBufferRecord;
}
SourceFile: "DirectByteBufferRecord.java"
InnerClasses:
public final CachedTypeIndex = org.glassfish.grizzly.ThreadCache$CachedTypeIndex of org.glassfish.grizzly.ThreadCache