class sun.nio.ch.Util
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: sun.nio.ch.Util
super_class: java.lang.Object
{
private static final int TEMP_BUF_POOL_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static java.lang.ThreadLocal<sun.nio.ch.Util$BufferCache> bufferCache;
descriptor: Ljava/lang/ThreadLocal;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Signature: Ljava/lang/ThreadLocal<Lsun/nio/ch/Util$BufferCache;>;
private static sun.misc.Unsafe unsafe;
descriptor: Lsun/misc/Unsafe;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static int pageSize;
descriptor: I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static volatile java.lang.reflect.Constructor<?> directByteBufferConstructor;
descriptor: Ljava/lang/reflect/Constructor;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/lang/reflect/Constructor<*>;
private static volatile java.lang.reflect.Constructor<?> directByteBufferRConstructor;
descriptor: Ljava/lang/reflect/Constructor;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
Signature: Ljava/lang/reflect/Constructor<*>;
private static volatile java.lang.String bugLevel;
descriptor: Ljava/lang/String;
flags: (0x004a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: ldc Lsun/nio/ch/Util;
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 sun.nio.ch.Util.$assertionsDisabled:Z
3: getstatic sun.nio.ch.IOUtil.IOV_MAX:I
putstatic sun.nio.ch.Util.TEMP_BUF_POOL_SIZE:I
4: new sun.nio.ch.Util$1
dup
invokespecial sun.nio.ch.Util$1.<init>:()V
5: putstatic sun.nio.ch.Util.bufferCache:Ljava/lang/ThreadLocal;
6: invokestatic sun.misc.Unsafe.getUnsafe:()Lsun/misc/Unsafe;
putstatic sun.nio.ch.Util.unsafe:Lsun/misc/Unsafe;
7: iconst_m1
putstatic sun.nio.ch.Util.pageSize:I
8: aconst_null
putstatic sun.nio.ch.Util.directByteBufferConstructor:Ljava/lang/reflect/Constructor;
9: aconst_null
putstatic sun.nio.ch.Util.directByteBufferRConstructor:Ljava/lang/reflect/Constructor;
10: aconst_null
putstatic sun.nio.ch.Util.bugLevel:Ljava/lang/String;
return
LocalVariableTable:
Start End Slot Name Signature
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lsun/nio/ch/Util;
static java.nio.ByteBuffer getTemporaryDirectBuffer(int);
descriptor: (I)Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: getstatic sun.nio.ch.Util.bufferCache:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.ch.Util$BufferCache
astore 1
start local 1 1: aload 1
iload 0
invokevirtual sun.nio.ch.Util$BufferCache.get:(I)Ljava/nio/ByteBuffer;
astore 2
start local 2 2: aload 2
ifnull 4
3: aload 2
areturn
4: StackMap locals: sun.nio.ch.Util$BufferCache java.nio.ByteBuffer
StackMap stack:
aload 1
invokevirtual sun.nio.ch.Util$BufferCache.isEmpty:()Z
ifne 7
5: aload 1
invokevirtual sun.nio.ch.Util$BufferCache.removeFirst:()Ljava/nio/ByteBuffer;
astore 2
6: aload 2
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
7: StackMap locals:
StackMap stack:
iload 0
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 size I
1 8 1 cache Lsun/nio/ch/Util$BufferCache;
2 8 2 buf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
size
static void releaseTemporaryDirectBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokestatic sun.nio.ch.Util.offerFirstTemporaryDirectBuffer:(Ljava/nio/ByteBuffer;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 buf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buf
static void offerFirstTemporaryDirectBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic sun.nio.ch.Util.$assertionsDisabled:Z
ifne 1
aload 0
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.Util.bufferCache:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.ch.Util$BufferCache
astore 1
start local 1 2: aload 1
aload 0
invokevirtual sun.nio.ch.Util$BufferCache.offerFirst:(Ljava/nio/ByteBuffer;)Z
ifne 4
3: aload 0
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
4: StackMap locals: sun.nio.ch.Util$BufferCache
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 buf Ljava/nio/ByteBuffer;
2 5 1 cache Lsun/nio/ch/Util$BufferCache;
MethodParameters:
Name Flags
buf
static void offerLastTemporaryDirectBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: getstatic sun.nio.ch.Util.$assertionsDisabled:Z
ifne 1
aload 0
ifnonnull 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.Util.bufferCache:Ljava/lang/ThreadLocal;
invokevirtual java.lang.ThreadLocal.get:()Ljava/lang/Object;
checkcast sun.nio.ch.Util$BufferCache
astore 1
start local 1 2: aload 1
aload 0
invokevirtual sun.nio.ch.Util$BufferCache.offerLast:(Ljava/nio/ByteBuffer;)Z
ifne 4
3: aload 0
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
4: StackMap locals: sun.nio.ch.Util$BufferCache
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 buf Ljava/nio/ByteBuffer;
2 5 1 cache Lsun/nio/ch/Util$BufferCache;
MethodParameters:
Name Flags
buf
private static void free(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.cleaner:()Lsun/misc/Cleaner;
invokevirtual sun.misc.Cleaner.clean:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 buf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buf
static java.nio.ByteBuffer[] subsequence(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)[Ljava/nio/ByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=6, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifne 2
iload 2
aload 0
arraylength
if_icmpne 2
1: aload 0
areturn
2: StackMap locals:
StackMap stack:
iload 2
istore 3
start local 3 3: iload 3
anewarray java.nio.ByteBuffer
astore 4
start local 4 4: iconst_0
istore 5
start local 5 5: goto 8
6: StackMap locals: int java.nio.ByteBuffer[] int
StackMap stack:
aload 4
iload 5
aload 0
iload 1
iload 5
iadd
aaload
aastore
7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 3
if_icmplt 6
end local 5 9: 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 10 0 bs [Ljava/nio/ByteBuffer;
0 10 1 offset I
0 10 2 length I
3 10 3 n I
4 10 4 bs2 [Ljava/nio/ByteBuffer;
5 9 5 i I
MethodParameters:
Name Flags
bs
offset
length
static <E> java.util.Set<E> ungrowableSet(java.util.Set<E>);
descriptor: (Ljava/util/Set;)Ljava/util/Set;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new sun.nio.ch.Util$2
dup
aload 0
invokespecial sun.nio.ch.Util$2.<init>:(Ljava/util/Set;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 s Ljava/util/Set<TE;>;
Signature: <E:Ljava/lang/Object;>(Ljava/util/Set<TE;>;)Ljava/util/Set<TE;>;
MethodParameters:
Name Flags
s final
private static byte _get(long);
descriptor: (J)B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic sun.nio.ch.Util.unsafe:Lsun/misc/Unsafe;
lload 0
invokevirtual sun.misc.Unsafe.getByte:(J)B
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 a J
MethodParameters:
Name Flags
a
private static void _put(long, byte);
descriptor: (JB)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 2 0: getstatic sun.nio.ch.Util.unsafe:Lsun/misc/Unsafe;
lload 0
iload 2
invokevirtual sun.misc.Unsafe.putByte:(JB)V
1: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a J
0 2 2 b B
MethodParameters:
Name Flags
a
b
static void erase(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=1, args_size=1
start local 0 0: getstatic sun.nio.ch.Util.unsafe:Lsun/misc/Unsafe;
aload 0
checkcast sun.nio.ch.DirectBuffer
invokeinterface sun.nio.ch.DirectBuffer.address:()J
aload 0
invokevirtual java.nio.ByteBuffer.capacity:()I
i2l
iconst_0
invokevirtual sun.misc.Unsafe.setMemory:(JJB)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 bb Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
bb
static sun.misc.Unsafe unsafe();
descriptor: ()Lsun/misc/Unsafe;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.nio.ch.Util.unsafe:Lsun/misc/Unsafe;
areturn
LocalVariableTable:
Start End Slot Name Signature
static int pageSize();
descriptor: ()I
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: getstatic sun.nio.ch.Util.pageSize:I
iconst_m1
if_icmpne 2
1: invokestatic sun.nio.ch.Util.unsafe:()Lsun/misc/Unsafe;
invokevirtual sun.misc.Unsafe.pageSize:()I
putstatic sun.nio.ch.Util.pageSize:I
2: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.Util.pageSize:I
ireturn
LocalVariableTable:
Start End Slot Name Signature
private static void initDBBConstructor();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new sun.nio.ch.Util$3
dup
invokespecial sun.nio.ch.Util$3.<init>:()V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
1: return
LocalVariableTable:
Start End Slot Name Signature
static java.nio.MappedByteBuffer newMappedByteBuffer(int, long, java.io.FileDescriptor, java.lang.Runnable);
descriptor: (IJLjava/io/FileDescriptor;Ljava/lang/Runnable;)Ljava/nio/MappedByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 3 start local 4 0: getstatic sun.nio.ch.Util.directByteBufferConstructor:Ljava/lang/reflect/Constructor;
ifnonnull 2
1: invokestatic sun.nio.ch.Util.initDBBConstructor:()V
2: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.Util.directByteBufferConstructor:Ljava/lang/reflect/Constructor;
3: iconst_4
anewarray java.lang.Object
dup
iconst_0
new java.lang.Integer
dup
iload 0
invokespecial java.lang.Integer.<init>:(I)V
aastore
dup
iconst_1
4: new java.lang.Long
dup
lload 1
invokespecial java.lang.Long.<init>:(J)V
aastore
dup
iconst_2
5: aload 3
aastore
dup
iconst_3
6: aload 4
aastore
7: invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.MappedByteBuffer
astore 5
start local 5 8: goto 11
end local 5 9: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
pop
10: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
start local 5 11: StackMap locals: java.nio.MappedByteBuffer
StackMap stack:
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 size I
0 12 1 addr J
0 12 3 fd Ljava/io/FileDescriptor;
0 12 4 unmapper Ljava/lang/Runnable;
8 9 5 dbb Ljava/nio/MappedByteBuffer;
11 12 5 dbb Ljava/nio/MappedByteBuffer;
Exception table:
from to target type
2 8 9 Class java.lang.InstantiationException
2 8 9 Class java.lang.IllegalAccessException
2 8 9 Class java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
size
addr
fd
unmapper
private static void initDBBRConstructor();
descriptor: ()V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new sun.nio.ch.Util$4
dup
invokespecial sun.nio.ch.Util$4.<init>:()V
invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
pop
1: return
LocalVariableTable:
Start End Slot Name Signature
static java.nio.MappedByteBuffer newMappedByteBufferR(int, long, java.io.FileDescriptor, java.lang.Runnable);
descriptor: (IJLjava/io/FileDescriptor;Ljava/lang/Runnable;)Ljava/nio/MappedByteBuffer;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=6, args_size=4
start local 0 start local 1 start local 3 start local 4 0: getstatic sun.nio.ch.Util.directByteBufferRConstructor:Ljava/lang/reflect/Constructor;
ifnonnull 2
1: invokestatic sun.nio.ch.Util.initDBBRConstructor:()V
2: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.Util.directByteBufferRConstructor:Ljava/lang/reflect/Constructor;
3: iconst_4
anewarray java.lang.Object
dup
iconst_0
new java.lang.Integer
dup
iload 0
invokespecial java.lang.Integer.<init>:(I)V
aastore
dup
iconst_1
4: new java.lang.Long
dup
lload 1
invokespecial java.lang.Long.<init>:(J)V
aastore
dup
iconst_2
5: aload 3
aastore
dup
iconst_3
6: aload 4
aastore
7: invokevirtual java.lang.reflect.Constructor.newInstance:([Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.nio.MappedByteBuffer
astore 5
start local 5 8: goto 11
end local 5 9: StackMap locals:
StackMap stack: java.lang.ReflectiveOperationException
pop
10: new java.lang.InternalError
dup
invokespecial java.lang.InternalError.<init>:()V
athrow
start local 5 11: StackMap locals: java.nio.MappedByteBuffer
StackMap stack:
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 size I
0 12 1 addr J
0 12 3 fd Ljava/io/FileDescriptor;
0 12 4 unmapper Ljava/lang/Runnable;
8 9 5 dbb Ljava/nio/MappedByteBuffer;
11 12 5 dbb Ljava/nio/MappedByteBuffer;
Exception table:
from to target type
2 8 9 Class java.lang.InstantiationException
2 8 9 Class java.lang.IllegalAccessException
2 8 9 Class java.lang.reflect.InvocationTargetException
MethodParameters:
Name Flags
size
addr
fd
unmapper
static boolean atBugLevel(java.lang.String);
descriptor: (Ljava/lang/String;)Z
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic sun.nio.ch.Util.bugLevel:Ljava/lang/String;
ifnonnull 8
1: invokestatic sun.misc.VM.isBooted:()Z
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
new sun.security.action.GetPropertyAction
dup
ldc "sun.nio.ch.bugLevel"
invokespecial sun.security.action.GetPropertyAction.<init>:(Ljava/lang/String;)V
4: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast java.lang.String
astore 1
start local 1 5: aload 1
ifnull 6
aload 1
goto 7
StackMap locals: java.lang.String
StackMap stack:
6: ldc ""
StackMap locals:
StackMap stack: java.lang.String
7: putstatic sun.nio.ch.Util.bugLevel:Ljava/lang/String;
end local 1 8: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.Util.bugLevel:Ljava/lang/String;
aload 0
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 bl Ljava/lang/String;
5 8 1 value Ljava/lang/String;
MethodParameters:
Name Flags
bl
}
SourceFile: "Util.java"
NestMembers:
sun.nio.ch.Util$1 sun.nio.ch.Util$2 sun.nio.ch.Util$3 sun.nio.ch.Util$4 sun.nio.ch.Util$BufferCache
InnerClasses:
sun.nio.ch.Util$1
sun.nio.ch.Util$2
sun.nio.ch.Util$3
sun.nio.ch.Util$4
private BufferCache = sun.nio.ch.Util$BufferCache of sun.nio.ch.Util