public class sun.nio.ch.Util
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, 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 final long MAX_CACHED_BUFFER_SIZE;
descriptor: J
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 jdk.internal.misc.Unsafe unsafe;
descriptor: Ljdk/internal/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<*>;
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: invokestatic sun.nio.ch.Util.getMaxCachedBufferSize:()J
putstatic sun.nio.ch.Util.MAX_CACHED_BUFFER_SIZE:J
5: new sun.nio.ch.Util$1
dup
invokespecial sun.nio.ch.Util$1.<init>:()V
putstatic sun.nio.ch.Util.bufferCache:Ljava/lang/ThreadLocal;
6: invokestatic jdk.internal.misc.Unsafe.getUnsafe:()Ljdk/internal/misc/Unsafe;
putstatic sun.nio.ch.Util.unsafe:Ljdk/internal/misc/Unsafe;
7: iconst_m1
putstatic sun.nio.ch.Util.pageSize:I
8: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
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;
private static long getMaxCachedBufferSize();
descriptor: ()J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=0
0: ldc "jdk.nio.maxCachedBufferSize"
invokestatic sun.security.action.GetPropertyAction.privilegedGetProperty:(Ljava/lang/String;)Ljava/lang/String;
1: astore 0
start local 0 2: aload 0
ifnull 8
3: aload 0
invokestatic java.lang.Long.parseLong:(Ljava/lang/String;)J
lstore 1
start local 1 4: lload 1
lconst_0
lcmp
iflt 8
5: lload 1
6: lreturn
end local 1 7: StackMap locals: java.lang.String
StackMap stack: java.lang.NumberFormatException
pop
8: StackMap locals:
StackMap stack:
ldc 9223372036854775807
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
2 9 0 s Ljava/lang/String;
4 7 1 m J
Exception table:
from to target type
3 6 7 Class java.lang.NumberFormatException
private static boolean isBufferTooLarge(int);
descriptor: (I)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: iload 0
i2l
getstatic sun.nio.ch.Util.MAX_CACHED_BUFFER_SIZE:J
lcmp
ifle 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 size I
MethodParameters:
Name Flags
size
private static boolean isBufferTooLarge(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual java.nio.ByteBuffer.capacity:()I
invokestatic sun.nio.ch.Util.isBufferTooLarge:(I)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buf
public static java.nio.ByteBuffer getTemporaryDirectBuffer(int);
descriptor: (I)Ljava/nio/ByteBuffer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: iload 0
invokestatic sun.nio.ch.Util.isBufferTooLarge:(I)Z
ifeq 2
1: iload 0
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
areturn
2: 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 3: aload 1
iload 0
invokevirtual sun.nio.ch.Util$BufferCache.get:(I)Ljava/nio/ByteBuffer;
astore 2
start local 2 4: aload 2
ifnull 6
5: aload 2
areturn
6: StackMap locals: sun.nio.ch.Util$BufferCache java.nio.ByteBuffer
StackMap stack:
aload 1
invokevirtual sun.nio.ch.Util$BufferCache.isEmpty:()Z
ifne 9
7: aload 1
invokevirtual sun.nio.ch.Util$BufferCache.removeFirst:()Ljava/nio/ByteBuffer;
astore 2
8: aload 2
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
9: 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 10 0 size I
3 10 1 cache Lsun/nio/ch/Util$BufferCache;
4 10 2 buf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
size
public static java.nio.ByteBuffer getTemporaryAlignedDirectBuffer(int, int);
descriptor: (II)Ljava/nio/ByteBuffer;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: iload 0
invokestatic sun.nio.ch.Util.isBufferTooLarge:(I)Z
ifeq 4
1: iload 0
iload 1
iadd
iconst_1
isub
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
2: iload 1
invokevirtual java.nio.ByteBuffer.alignedSlice:(I)Ljava/nio/ByteBuffer;
3: areturn
4: 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 2
start local 2 5: aload 2
iload 0
invokevirtual sun.nio.ch.Util$BufferCache.get:(I)Ljava/nio/ByteBuffer;
astore 3
start local 3 6: aload 3
ifnull 9
7: aload 3
iconst_0
iload 1
invokevirtual java.nio.ByteBuffer.alignmentOffset:(II)I
ifne 12
8: aload 3
areturn
9: StackMap locals: sun.nio.ch.Util$BufferCache java.nio.ByteBuffer
StackMap stack:
aload 2
invokevirtual sun.nio.ch.Util$BufferCache.isEmpty:()Z
ifne 12
10: aload 2
invokevirtual sun.nio.ch.Util$BufferCache.removeFirst:()Ljava/nio/ByteBuffer;
astore 3
11: aload 3
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
12: StackMap locals:
StackMap stack:
iload 0
iload 1
iadd
iconst_1
isub
invokestatic java.nio.ByteBuffer.allocateDirect:(I)Ljava/nio/ByteBuffer;
13: iload 1
invokevirtual java.nio.ByteBuffer.alignedSlice:(I)Ljava/nio/ByteBuffer;
14: areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 size I
0 15 1 alignment I
5 15 2 cache Lsun/nio/ch/Util$BufferCache;
6 15 3 buf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
size
alignment
public static void releaseTemporaryDirectBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0009) ACC_PUBLIC, 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: aload 0
invokestatic sun.nio.ch.Util.isBufferTooLarge:(Ljava/nio/ByteBuffer;)Z
ifeq 3
1: aload 0
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
2: return
3: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.Util.$assertionsDisabled:Z
ifne 4
aload 0
ifnonnull 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: 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 5: aload 1
aload 0
invokevirtual sun.nio.ch.Util$BufferCache.offerFirst:(Ljava/nio/ByteBuffer;)Z
ifne 7
6: aload 0
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
7: StackMap locals: sun.nio.ch.Util$BufferCache
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 buf Ljava/nio/ByteBuffer;
5 8 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: aload 0
invokestatic sun.nio.ch.Util.isBufferTooLarge:(Ljava/nio/ByteBuffer;)Z
ifeq 3
1: aload 0
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
2: return
3: StackMap locals:
StackMap stack:
getstatic sun.nio.ch.Util.$assertionsDisabled:Z
ifne 4
aload 0
ifnonnull 4
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
4: 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 5: aload 1
aload 0
invokevirtual sun.nio.ch.Util$BufferCache.offerLast:(Ljava/nio/ByteBuffer;)Z
ifne 7
6: aload 0
invokestatic sun.nio.ch.Util.free:(Ljava/nio/ByteBuffer;)V
7: StackMap locals: sun.nio.ch.Util$BufferCache
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 buf Ljava/nio/ByteBuffer;
5 8 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:()Ljdk/internal/ref/Cleaner;
invokevirtual jdk.internal.ref.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:Ljdk/internal/misc/Unsafe;
lload 0
invokevirtual jdk.internal.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:Ljdk/internal/misc/Unsafe;
lload 0
iload 2
invokevirtual jdk.internal.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:Ljdk/internal/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 jdk.internal.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 jdk.internal.misc.Unsafe unsafe();
descriptor: ()Ljdk/internal/misc/Unsafe;
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic sun.nio.ch.Util.unsafe:Ljdk/internal/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:()Ljdk/internal/misc/Unsafe;
invokevirtual jdk.internal.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=6, locals=7, 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
iload 0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
4: lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
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
astore 6
start local 6 10: new java.lang.InternalError
dup
aload 6
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 6 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;
10 11 6 e Ljava/lang/ReflectiveOperationException;
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=6, locals=7, 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
iload 0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
dup
iconst_1
4: lload 1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
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
astore 6
start local 6 10: new java.lang.InternalError
dup
aload 6
invokespecial java.lang.InternalError.<init>:(Ljava/lang/Throwable;)V
athrow
end local 6 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;
10 11 6 e Ljava/lang/ReflectiveOperationException;
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 void checkBufferPositionAligned(java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;II)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
iload 2
invokevirtual java.nio.ByteBuffer.alignmentOffset:(II)I
ifeq 5
1: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Current location of the bytebuffer ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") is not a multiple of the block size ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 bb Ljava/nio/ByteBuffer;
0 6 1 pos I
0 6 2 alignment I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
bb
pos
alignment
static void checkRemainingBufferSizeAligned(int, int);
descriptor: (II)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 1
irem
ifeq 5
1: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Number of remaining bytes ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ") is not a multiple of the block size ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 rem I
0 6 1 alignment I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
rem
alignment
static void checkChannelPositionAligned(long, int);
descriptor: (JI)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 2 0: lload 0
iload 2
i2l
lrem
lconst_0
lcmp
ifeq 5
1: new java.io.IOException
dup
new java.lang.StringBuilder
dup
ldc "Channel position ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 0
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
2: ldc ") is not a multiple of the block size ("
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
3: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ")"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
4: invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 position J
0 6 2 alignment I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
position
alignment
}
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