public final class org.apache.cassandra.utils.FastByteOperations$UnsafeOperations implements org.apache.cassandra.utils.FastByteOperations$ByteOperations
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.apache.cassandra.utils.FastByteOperations$UnsafeOperations
super_class: java.lang.Object
{
static final sun.misc.Unsafe theUnsafe;
descriptor: Lsun/misc/Unsafe;
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final long BYTE_ARRAY_BASE_OFFSET;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final long DIRECT_BUFFER_ADDRESS_OFFSET;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
static final boolean BIG_ENDIAN;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final long UNSAFE_COPY_THRESHOLD;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1048576
private static final long MIN_COPY_THRESHOLD;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 6
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=1, args_size=0
0: new org.apache.cassandra.utils.FastByteOperations$UnsafeOperations$1
dup
invokespecial org.apache.cassandra.utils.FastByteOperations$UnsafeOperations$1.<init>:()V
1: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedAction;)Ljava/lang/Object;
checkcast sun.misc.Unsafe
putstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
2: getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
ldc [B
invokevirtual sun.misc.Unsafe.arrayBaseOffset:(Ljava/lang/Class;)I
i2l
putstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.BYTE_ARRAY_BASE_OFFSET:J
3: getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
ldc Ljava/nio/Buffer;
ldc "address"
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
invokevirtual sun.misc.Unsafe.objectFieldOffset:(Ljava/lang/reflect/Field;)J
putstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.DIRECT_BUFFER_ADDRESS_OFFSET:J
4: goto 7
5: StackMap locals:
StackMap stack: java.lang.Exception
astore 0
start local 0 6: new java.lang.AssertionError
dup
aload 0
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 0 7: StackMap locals:
StackMap stack:
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
ldc [B
invokevirtual sun.misc.Unsafe.arrayIndexScale:(Ljava/lang/Class;)I
iconst_1
if_icmpeq 9
8: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
9: StackMap locals:
StackMap stack:
invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
putstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.BIG_ENDIAN:Z
10: return
LocalVariableTable:
Start End Slot Name Signature
6 7 0 e Ljava/lang/Exception;
Exception table:
from to target type
2 4 5 Class java.lang.Exception
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 Lorg/apache/cassandra/utils/FastByteOperations$UnsafeOperations;
public int compare(byte[], int, int, byte[], int, int);
descriptor: ([BII[BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 1
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.BYTE_ARRAY_BASE_OFFSET:J
iload 2
i2l
ladd
iload 3
1: aload 4
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.BYTE_ARRAY_BASE_OFFSET:J
iload 5
i2l
ladd
iload 6
2: invokestatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.compareTo:(Ljava/lang/Object;JILjava/lang/Object;JI)I
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/apache/cassandra/utils/FastByteOperations$UnsafeOperations;
0 3 1 buffer1 [B
0 3 2 offset1 I
0 3 3 length1 I
0 3 4 buffer2 [B
0 3 5 offset2 I
0 3 6 length2 I
MethodParameters:
Name Flags
buffer1
offset1
length1
buffer2
offset2
length2
public int compare(java.nio.ByteBuffer, byte[], int, int);
descriptor: (Ljava/nio/ByteBuffer;[BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=11, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 1
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 4
1: aload 1
invokevirtual java.nio.ByteBuffer.array:()[B
astore 5
start local 5 2: getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.BYTE_ARRAY_BASE_OFFSET:J
aload 1
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
i2l
ladd
lstore 6
start local 6 3: goto 6
end local 6 end local 5 4: StackMap locals:
StackMap stack:
aconst_null
astore 5
start local 5 5: getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
aload 1
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.DIRECT_BUFFER_ADDRESS_OFFSET:J
invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
lstore 6
start local 6 6: StackMap locals: java.lang.Object long
StackMap stack:
aload 1
invokevirtual java.nio.ByteBuffer.position:()I
istore 9
start local 9 7: aload 1
invokevirtual java.nio.ByteBuffer.limit:()I
istore 10
start local 10 8: iload 10
iload 9
isub
istore 8
start local 8 9: lload 6
iload 9
i2l
ladd
lstore 6
end local 10 end local 9 10: aload 5
lload 6
iload 8
aload 2
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.BYTE_ARRAY_BASE_OFFSET:J
iload 3
i2l
ladd
iload 4
invokestatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.compareTo:(Ljava/lang/Object;JILjava/lang/Object;JI)I
ireturn
end local 8 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/apache/cassandra/utils/FastByteOperations$UnsafeOperations;
0 11 1 buffer1 Ljava/nio/ByteBuffer;
0 11 2 buffer2 [B
0 11 3 offset2 I
0 11 4 length2 I
2 4 5 obj1 Ljava/lang/Object;
5 11 5 obj1 Ljava/lang/Object;
3 4 6 offset1 J
6 11 6 offset1 J
9 11 8 length1 I
7 10 9 position I
8 10 10 limit I
MethodParameters:
Name Flags
buffer1
buffer2
offset2
length2
public int compare(java.nio.ByteBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 2
invokestatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.compareTo:(Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/apache/cassandra/utils/FastByteOperations$UnsafeOperations;
0 1 1 buffer1 Ljava/nio/ByteBuffer;
0 1 2 buffer2 Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer1
buffer2
public void copy(java.nio.ByteBuffer, int, byte[], int, int);
descriptor: (Ljava/nio/ByteBuffer;I[BII)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
1: aload 1
invokevirtual java.nio.ByteBuffer.array:()[B
aload 1
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iload 2
iadd
aload 3
iload 4
iload 5
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
goto 3
2: StackMap locals:
StackMap stack:
aconst_null
iload 2
i2l
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
aload 1
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.DIRECT_BUFFER_ADDRESS_OFFSET:J
invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
ladd
aload 3
iload 4
iload 5
invokestatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.copy:(Ljava/lang/Object;J[BII)V
3: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/apache/cassandra/utils/FastByteOperations$UnsafeOperations;
0 4 1 src Ljava/nio/ByteBuffer;
0 4 2 srcPosition I
0 4 3 trg [B
0 4 4 trgPosition I
0 4 5 length I
MethodParameters:
Name Flags
src
srcPosition
trg
trgPosition
length
public void copy(java.nio.ByteBuffer, int, java.nio.ByteBuffer, int, int);
descriptor: (Ljava/nio/ByteBuffer;ILjava/nio/ByteBuffer;II)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=9, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 1
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 4
1: aload 1
invokevirtual java.nio.ByteBuffer.array:()[B
astore 6
start local 6 2: getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.BYTE_ARRAY_BASE_OFFSET:J
aload 1
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
i2l
ladd
lstore 7
start local 7 3: goto 6
end local 7 end local 6 4: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 5: getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
aload 1
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.DIRECT_BUFFER_ADDRESS_OFFSET:J
invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
lstore 7
start local 7 6: StackMap locals: java.lang.Object long
StackMap stack:
aload 6
lload 7
iload 2
i2l
ladd
aload 3
iload 4
iload 5
invokestatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.copy:(Ljava/lang/Object;JLjava/nio/ByteBuffer;II)V
7: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lorg/apache/cassandra/utils/FastByteOperations$UnsafeOperations;
0 8 1 srcBuf Ljava/nio/ByteBuffer;
0 8 2 srcPosition I
0 8 3 trgBuf Ljava/nio/ByteBuffer;
0 8 4 trgPosition I
0 8 5 length I
2 4 6 src Ljava/lang/Object;
5 8 6 src Ljava/lang/Object;
3 4 7 srcOffset J
6 8 7 srcOffset J
MethodParameters:
Name Flags
srcBuf
srcPosition
trgBuf
trgPosition
length
public static void copy(java.lang.Object, long, java.nio.ByteBuffer, int, int);
descriptor: (Ljava/lang/Object;JLjava/nio/ByteBuffer;II)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=10, locals=6, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: aload 3
invokevirtual java.nio.ByteBuffer.hasArray:()Z
ifeq 2
1: aload 0
lload 1
aload 3
invokevirtual java.nio.ByteBuffer.array:()[B
aload 3
invokevirtual java.nio.ByteBuffer.arrayOffset:()I
iload 4
iadd
iload 5
invokestatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.copy:(Ljava/lang/Object;J[BII)V
goto 3
2: StackMap locals:
StackMap stack:
aload 0
lload 1
aconst_null
iload 4
i2l
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
aload 3
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.DIRECT_BUFFER_ADDRESS_OFFSET:J
invokevirtual sun.misc.Unsafe.getLong:(Ljava/lang/Object;J)J
ladd
iload 5
i2l
invokestatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.copy:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
3: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 src Ljava/lang/Object;
0 4 1 srcOffset J
0 4 3 trgBuf Ljava/nio/ByteBuffer;
0 4 4 trgPosition I
0 4 5 length I
MethodParameters:
Name Flags
src
srcOffset
trgBuf
trgPosition
length
public static void copy(java.lang.Object, long, byte[], int, int);
descriptor: (Ljava/lang/Object;J[BII)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=7, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 5 0: iload 5
i2l
ldc 6
lcmp
ifgt 7
1: iconst_0
istore 6
start local 6 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 3
iload 4
iload 6
iadd
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
aload 0
lload 1
iload 6
i2l
ladd
invokevirtual sun.misc.Unsafe.getByte:(Ljava/lang/Object;J)B
bastore
4: iinc 6 1
StackMap locals:
StackMap stack:
5: iload 6
iload 5
if_icmplt 3
end local 6 6: goto 8
7: StackMap locals:
StackMap stack:
aload 0
lload 1
aload 3
getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.BYTE_ARRAY_BASE_OFFSET:J
iload 4
i2l
ladd
iload 5
i2l
invokestatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.copy:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
8: StackMap locals:
StackMap stack:
return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 src Ljava/lang/Object;
0 9 1 srcOffset J
0 9 3 trg [B
0 9 4 trgPosition I
0 9 5 length I
2 6 6 i I
MethodParameters:
Name Flags
src
srcOffset
trg
trgPosition
length
public static void copy(java.lang.Object, long, java.lang.Object, long, long);
descriptor: (Ljava/lang/Object;JLjava/lang/Object;JJ)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=9, locals=10, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 6 0: goto 8
1: StackMap locals:
StackMap stack:
lload 6
ldc 1048576
lcmp
ifle 2
ldc 1048576
goto 3
StackMap locals:
StackMap stack:
2: lload 6
StackMap locals:
StackMap stack: long
3: lstore 8
start local 8 4: getstatic org.apache.cassandra.utils.FastByteOperations$UnsafeOperations.theUnsafe:Lsun/misc/Unsafe;
aload 0
lload 1
aload 3
lload 4
lload 8
invokevirtual sun.misc.Unsafe.copyMemory:(Ljava/lang/Object;JLjava/lang/Object;JJ)V
5: lload 6
lload 8
lsub
lstore 6
6: lload 1
lload 8
ladd
lstore 1
7: lload 4
lload 8
ladd
lstore 4
end local 8 8: StackMap locals:
StackMap stack:
lload 6
lconst_0
lcmp
ifgt 1
9: return
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 src Ljava/lang/Object;
0 10 1 srcOffset J
0 10 3 dst Ljava/lang/Object;
0 10 4 dstOffset J
0 10 6 length J
4 8 8 size J
MethodParameters:
Name Flags
src
srcOffset
dst
dstOffset
length
public static int compareTo(java.nio.ByteBuffer, java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tInline cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
RuntimeInvisibleAnnotations:
Inline()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
Inline()
MethodParameters:
Name Flags
buffer1
buffer2
public static int compareTo(java.lang.Object, long, int, java.nio.ByteBuffer);
descriptor: (Ljava/lang/Object;JILjava/nio/ByteBuffer;)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=5, args_size=4
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tInline cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
RuntimeInvisibleAnnotations:
Inline()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
Inline()
MethodParameters:
Name Flags
buffer1
offset1
length1
buffer
public static int compareTo(java.lang.Object, long, int, java.lang.Object, long, int);
descriptor: (Ljava/lang/Object;JILjava/lang/Object;JI)I
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=8, args_size=6
0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tInline cannot be resolved to a type\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
LocalVariableTable:
Start End Slot Name Signature
RuntimeInvisibleAnnotations:
Inline()
RuntimeInvisibleTypeAnnotations:
METHOD_RETURN
Inline()
MethodParameters:
Name Flags
buffer1
memoryOffset1
length1
buffer2
memoryOffset2
length2
}
SourceFile: "FastByteOperations.java"
NestHost: org.apache.cassandra.utils.FastByteOperations
InnerClasses:
public abstract ByteOperations = org.apache.cassandra.utils.FastByteOperations$ByteOperations of org.apache.cassandra.utils.FastByteOperations
public final UnsafeOperations = org.apache.cassandra.utils.FastByteOperations$UnsafeOperations of org.apache.cassandra.utils.FastByteOperations
org.apache.cassandra.utils.FastByteOperations$UnsafeOperations$1