final class com.google.protobuf.UnsafeUtil
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.google.protobuf.UnsafeUtil
super_class: java.lang.Object
{
private static final java.util.logging.Logger logger;
descriptor: Ljava/util/logging/Logger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final sun.misc.Unsafe UNSAFE;
descriptor: Lsun/misc/Unsafe;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final java.lang.Class<?> MEMORY_CLASS;
descriptor: Ljava/lang/Class;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/lang/Class<*>;
private static final boolean IS_ANDROID_64;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean IS_ANDROID_32;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final com.google.protobuf.UnsafeUtil$MemoryAccessor MEMORY_ACCESSOR;
descriptor: Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean HAS_UNSAFE_BYTEBUFFER_OPERATIONS;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final boolean HAS_UNSAFE_ARRAY_OPERATIONS;
descriptor: Z
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final long BYTE_ARRAY_BASE_OFFSET;
descriptor: J
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final long BOOLEAN_ARRAY_BASE_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long BOOLEAN_ARRAY_INDEX_SCALE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long INT_ARRAY_BASE_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long INT_ARRAY_INDEX_SCALE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long LONG_ARRAY_BASE_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long LONG_ARRAY_INDEX_SCALE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long FLOAT_ARRAY_BASE_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long FLOAT_ARRAY_INDEX_SCALE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long DOUBLE_ARRAY_BASE_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long DOUBLE_ARRAY_INDEX_SCALE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long OBJECT_ARRAY_BASE_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long OBJECT_ARRAY_INDEX_SCALE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final long BUFFER_ADDRESS_OFFSET;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int STRIDE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
private static final int STRIDE_ALIGNMENT_MASK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 7
private static final int BYTE_ARRAY_ALIGNMENT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static final boolean IS_BIG_ENDIAN;
descriptor: Z
flags: (0x0018) ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: ldc Lcom/google/protobuf/UnsafeUtil;
invokevirtual java.lang.Class.getName:()Ljava/lang/String;
invokestatic java.util.logging.Logger.getLogger:(Ljava/lang/String;)Ljava/util/logging/Logger;
putstatic com.google.protobuf.UnsafeUtil.logger:Ljava/util/logging/Logger;
1: invokestatic com.google.protobuf.UnsafeUtil.getUnsafe:()Lsun/misc/Unsafe;
putstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
2: invokestatic com.google.protobuf.Android.getMemoryClass:()Ljava/lang/Class;
putstatic com.google.protobuf.UnsafeUtil.MEMORY_CLASS:Ljava/lang/Class;
3: getstatic java.lang.Long.TYPE:Ljava/lang/Class;
invokestatic com.google.protobuf.UnsafeUtil.determineAndroidSupportByAddressSize:(Ljava/lang/Class;)Z
putstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_64:Z
4: getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
invokestatic com.google.protobuf.UnsafeUtil.determineAndroidSupportByAddressSize:(Ljava/lang/Class;)Z
putstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_32:Z
5: invokestatic com.google.protobuf.UnsafeUtil.getMemoryAccessor:()Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
putstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
6: invokestatic com.google.protobuf.UnsafeUtil.supportsUnsafeByteBufferOperations:()Z
7: putstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_BYTEBUFFER_OPERATIONS:Z
8: invokestatic com.google.protobuf.UnsafeUtil.supportsUnsafeArrayOperations:()Z
putstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
9: ldc [B
invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
10: ldc [Z
invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_BASE_OFFSET:J
11: ldc [Z
invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_INDEX_SCALE:J
12: ldc [I
invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_BASE_OFFSET:J
13: ldc [I
invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_INDEX_SCALE:J
14: ldc [J
invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_BASE_OFFSET:J
15: ldc [J
invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_INDEX_SCALE:J
16: ldc [F
invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_BASE_OFFSET:J
17: ldc [F
invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_INDEX_SCALE:J
18: ldc [D
invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_BASE_OFFSET:J
19: ldc [D
invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_INDEX_SCALE:J
20: ldc [Ljava/lang/Object;
invokestatic com.google.protobuf.UnsafeUtil.arrayBaseOffset:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_BASE_OFFSET:J
21: ldc [Ljava/lang/Object;
invokestatic com.google.protobuf.UnsafeUtil.arrayIndexScale:(Ljava/lang/Class;)I
i2l
putstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_INDEX_SCALE:J
22: invokestatic com.google.protobuf.UnsafeUtil.bufferAddressField:()Ljava/lang/reflect/Field;
invokestatic com.google.protobuf.UnsafeUtil.fieldOffset:(Ljava/lang/reflect/Field;)J
putstatic com.google.protobuf.UnsafeUtil.BUFFER_ADDRESS_OFFSET:J
23: getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
ldc 7
land
l2i
24: putstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_ALIGNMENT:I
25: invokestatic java.nio.ByteOrder.nativeOrder:()Ljava/nio/ByteOrder;
getstatic java.nio.ByteOrder.BIG_ENDIAN:Ljava/nio/ByteOrder;
if_acmpne 26
iconst_1
goto 27
StackMap locals:
StackMap stack:
26: iconst_0
StackMap locals:
StackMap stack: int
27: putstatic com.google.protobuf.UnsafeUtil.IS_BIG_ENDIAN:Z
return
LocalVariableTable:
Start End Slot Name Signature
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
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 Lcom/google/protobuf/UnsafeUtil;
static boolean hasUnsafeArrayOperations();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
static boolean hasUnsafeByteBufferOperations();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_BYTEBUFFER_OPERATIONS:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
static boolean isAndroid64();
descriptor: ()Z
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: getstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_64:Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
static <T> T allocateInstance(java.lang.Class<T>);
descriptor: (Ljava/lang/Class;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
aload 0
invokevirtual sun.misc.Unsafe.allocateInstance:(Ljava/lang/Class;)Ljava/lang/Object;
1: areturn
2: StackMap locals:
StackMap stack: java.lang.InstantiationException
astore 1
start local 1 3: new java.lang.IllegalStateException
dup
aload 1
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 clazz Ljava/lang/Class<TT;>;
3 4 1 e Ljava/lang/InstantiationException;
Exception table:
from to target type
0 1 2 Class java.lang.InstantiationException
Signature: <T:Ljava/lang/Object;>(Ljava/lang/Class<TT;>;)TT;
MethodParameters:
Name Flags
clazz
static long objectFieldOffset(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)J
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.objectFieldOffset:(Ljava/lang/reflect/Field;)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 field Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
field
private static int arrayBaseOffset(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
ifeq 1
getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.arrayBaseOffset:(Ljava/lang/Class;)I
goto 2
StackMap locals:
StackMap stack:
1: iconst_m1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)I
MethodParameters:
Name Flags
clazz
private static int arrayIndexScale(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
ifeq 1
getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.arrayIndexScale:(Ljava/lang/Class;)I
goto 2
StackMap locals:
StackMap stack:
1: iconst_m1
StackMap locals:
StackMap stack: int
2: ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 clazz Ljava/lang/Class<*>;
Signature: (Ljava/lang/Class<*>;)I
MethodParameters:
Name Flags
clazz
static byte getByte(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)B
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getByte:(Ljava/lang/Object;J)B
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
static void putByte(java.lang.Object, long, byte);
descriptor: (Ljava/lang/Object;JB)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
iload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putByte:(Ljava/lang/Object;JB)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
0 2 3 value B
MethodParameters:
Name Flags
target
offset
value
static int getInt(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)I
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getInt:(Ljava/lang/Object;J)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
static void putInt(java.lang.Object, long, int);
descriptor: (Ljava/lang/Object;JI)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
iload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putInt:(Ljava/lang/Object;JI)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
0 2 3 value I
MethodParameters:
Name Flags
target
offset
value
static long getLong(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)J
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getLong:(Ljava/lang/Object;J)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
static void putLong(java.lang.Object, long, long);
descriptor: (Ljava/lang/Object;JJ)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
lload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putLong:(Ljava/lang/Object;JJ)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
0 2 3 value J
MethodParameters:
Name Flags
target
offset
value
static boolean getBoolean(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)Z
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getBoolean:(Ljava/lang/Object;J)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
static void putBoolean(java.lang.Object, long, boolean);
descriptor: (Ljava/lang/Object;JZ)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
iload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putBoolean:(Ljava/lang/Object;JZ)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
0 2 3 value Z
MethodParameters:
Name Flags
target
offset
value
static float getFloat(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)F
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getFloat:(Ljava/lang/Object;J)F
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
static void putFloat(java.lang.Object, long, float);
descriptor: (Ljava/lang/Object;JF)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
fload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putFloat:(Ljava/lang/Object;JF)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
0 2 3 value F
MethodParameters:
Name Flags
target
offset
value
static double getDouble(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)D
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getDouble:(Ljava/lang/Object;J)D
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
static void putDouble(java.lang.Object, long, double);
descriptor: (Ljava/lang/Object;JD)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
dload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putDouble:(Ljava/lang/Object;JD)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
0 2 3 value D
MethodParameters:
Name Flags
target
offset
value
static java.lang.Object getObject(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
static void putObject(java.lang.Object, long, java.lang.Object);
descriptor: (Ljava/lang/Object;JLjava/lang/Object;)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
aload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
0 2 3 value Ljava/lang/Object;
MethodParameters:
Name Flags
target
offset
value
static byte getByte(byte[], long);
descriptor: ([BJ)B
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
lload 1
ladd
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getByte:(Ljava/lang/Object;J)B
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target [B
0 1 1 index J
MethodParameters:
Name Flags
target
index
static void putByte(byte[], long, byte);
descriptor: ([BJB)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
lload 1
ladd
iload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putByte:(Ljava/lang/Object;JB)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target [B
0 2 1 index J
0 2 3 value B
MethodParameters:
Name Flags
target
index
value
static int getInt(int[], long);
descriptor: ([IJ)I
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
getstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_INDEX_SCALE:J
lmul
ladd
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getInt:(Ljava/lang/Object;J)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target [I
0 1 1 index J
MethodParameters:
Name Flags
target
index
static void putInt(int[], long, int);
descriptor: ([IJI)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
getstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.INT_ARRAY_INDEX_SCALE:J
lmul
ladd
iload 3
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putInt:(Ljava/lang/Object;JI)V
1: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target [I
0 2 1 index J
0 2 3 value I
MethodParameters:
Name Flags
target
index
value
static long getLong(long[], long);
descriptor: ([JJ)J
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_INDEX_SCALE:J
lmul
ladd
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getLong:(Ljava/lang/Object;J)J
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 target [J
0 3 1 index J
MethodParameters:
Name Flags
target
index
static void putLong(long[], long, long);
descriptor: ([JJJ)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.LONG_ARRAY_INDEX_SCALE:J
lmul
ladd
lload 3
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putLong:(Ljava/lang/Object;JJ)V
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target [J
0 4 1 index J
0 4 3 value J
MethodParameters:
Name Flags
target
index
value
static boolean getBoolean(boolean[], long);
descriptor: ([ZJ)Z
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_INDEX_SCALE:J
lmul
ladd
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getBoolean:(Ljava/lang/Object;J)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 target [Z
0 3 1 index J
MethodParameters:
Name Flags
target
index
static void putBoolean(boolean[], long, boolean);
descriptor: ([ZJZ)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.BOOLEAN_ARRAY_INDEX_SCALE:J
lmul
ladd
iload 3
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putBoolean:(Ljava/lang/Object;JZ)V
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target [Z
0 4 1 index J
0 4 3 value Z
MethodParameters:
Name Flags
target
index
value
static float getFloat(float[], long);
descriptor: ([FJ)F
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_INDEX_SCALE:J
lmul
ladd
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getFloat:(Ljava/lang/Object;J)F
freturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 target [F
0 3 1 index J
MethodParameters:
Name Flags
target
index
static void putFloat(float[], long, float);
descriptor: ([FJF)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.FLOAT_ARRAY_INDEX_SCALE:J
lmul
ladd
fload 3
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putFloat:(Ljava/lang/Object;JF)V
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target [F
0 4 1 index J
0 4 3 value F
MethodParameters:
Name Flags
target
index
value
static double getDouble(double[], long);
descriptor: ([DJ)D
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_INDEX_SCALE:J
lmul
ladd
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getDouble:(Ljava/lang/Object;J)D
dreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 target [D
0 3 1 index J
MethodParameters:
Name Flags
target
index
static void putDouble(double[], long, double);
descriptor: ([DJD)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=5, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.DOUBLE_ARRAY_INDEX_SCALE:J
lmul
ladd
dload 3
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putDouble:(Ljava/lang/Object;JD)V
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target [D
0 4 1 index J
0 4 3 value D
MethodParameters:
Name Flags
target
index
value
static java.lang.Object getObject(java.lang.Object[], long);
descriptor: ([Ljava/lang/Object;J)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=3, args_size=2
start local 0 start local 1 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_INDEX_SCALE:J
lmul
ladd
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getObject:(Ljava/lang/Object;J)Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 target [Ljava/lang/Object;
0 3 1 index J
MethodParameters:
Name Flags
target
index
static void putObject(java.lang.Object[], long, java.lang.Object);
descriptor: ([Ljava/lang/Object;JLjava/lang/Object;)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=4, args_size=3
start local 0 start local 1 start local 3 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
1: aload 0
getstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_BASE_OFFSET:J
lload 1
getstatic com.google.protobuf.UnsafeUtil.OBJECT_ARRAY_INDEX_SCALE:J
lmul
ladd
aload 3
2: invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putObject:(Ljava/lang/Object;JLjava/lang/Object;)V
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target [Ljava/lang/Object;
0 4 1 index J
0 4 3 value Ljava/lang/Object;
MethodParameters:
Name Flags
target
index
value
static void copyMemory(byte[], long, long, long);
descriptor: ([BJJJ)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=7, args_size=4
start local 0 start local 1 start local 3 start local 5 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
lload 1
lload 3
lload 5
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.copyMemory:([BJJJ)V
1: return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 src [B
0 2 1 srcIndex J
0 2 3 targetOffset J
0 2 5 length J
MethodParameters:
Name Flags
src
srcIndex
targetOffset
length
static void copyMemory(long, byte[], long, long);
descriptor: (J[BJJ)V
flags: (0x0008) ACC_STATIC
Code:
stack=8, locals=7, args_size=4
start local 0 start local 2 start local 3 start local 5 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
lload 0
aload 2
lload 3
lload 5
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.copyMemory:(J[BJJ)V
1: return
end local 5 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 srcOffset J
0 2 2 target [B
0 2 3 targetIndex J
0 2 5 length J
MethodParameters:
Name Flags
srcOffset
target
targetIndex
length
static void copyMemory(byte[], long, byte[], long, long);
descriptor: ([BJ[BJJ)V
flags: (0x0008) ACC_STATIC
Code:
stack=6, locals=8, args_size=5
start local 0 start local 1 start local 3 start local 4 start local 6 0: aload 0
lload 1
l2i
aload 3
lload 4
l2i
lload 6
l2i
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
1: return
end local 6 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 src [B
0 2 1 srcIndex J
0 2 3 target [B
0 2 4 targetIndex J
0 2 6 length J
MethodParameters:
Name Flags
src
srcIndex
target
targetIndex
length
static byte getByte(long);
descriptor: (J)B
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
lload 0
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getByte:(J)B
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 address J
MethodParameters:
Name Flags
address
static void putByte(long, byte);
descriptor: (JB)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 2 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
lload 0
iload 2
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putByte:(JB)V
1: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 address J
0 2 2 value B
MethodParameters:
Name Flags
address
value
static int getInt(long);
descriptor: (J)I
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
lload 0
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getInt:(J)I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 address J
MethodParameters:
Name Flags
address
static void putInt(long, int);
descriptor: (JI)V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 2 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
lload 0
iload 2
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putInt:(JI)V
1: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 address J
0 2 2 value I
MethodParameters:
Name Flags
address
value
static long getLong(long);
descriptor: (J)J
flags: (0x0008) ACC_STATIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
lload 0
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getLong:(J)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 address J
MethodParameters:
Name Flags
address
static void putLong(long, long);
descriptor: (JJ)V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=4, args_size=2
start local 0 start local 2 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
lload 0
lload 2
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.putLong:(JJ)V
1: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 address J
0 2 2 value J
MethodParameters:
Name Flags
address
value
static long addressOffset(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)J
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
getstatic com.google.protobuf.UnsafeUtil.BUFFER_ADDRESS_OFFSET:J
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getLong:(Ljava/lang/Object;J)J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffer
static java.lang.Object getStaticObject(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)Ljava/lang/Object;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.getStaticObject:(Ljava/lang/reflect/Field;)Ljava/lang/Object;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 field Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
field
static sun.misc.Unsafe getUnsafe();
descriptor: ()Lsun/misc/Unsafe;
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: aconst_null
astore 0
start local 0 1: new com.google.protobuf.UnsafeUtil$1
dup
invokespecial com.google.protobuf.UnsafeUtil$1.<init>:()V
2: invokestatic java.security.AccessController.doPrivileged:(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
checkcast sun.misc.Unsafe
3: astore 0
4: goto 6
StackMap locals: sun.misc.Unsafe
StackMap stack: java.lang.Throwable
5: pop
6: StackMap locals:
StackMap stack:
aload 0
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
1 7 0 unsafe Lsun/misc/Unsafe;
Exception table:
from to target type
1 4 5 Class java.lang.Throwable
private static com.google.protobuf.UnsafeUtil$MemoryAccessor getMemoryAccessor();
descriptor: ()Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=0, args_size=0
0: getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
ifnonnull 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
ifeq 8
3: getstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_64:Z
ifeq 5
4: new com.google.protobuf.UnsafeUtil$Android64MemoryAccessor
dup
getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
invokespecial com.google.protobuf.UnsafeUtil$Android64MemoryAccessor.<init>:(Lsun/misc/Unsafe;)V
areturn
5: StackMap locals:
StackMap stack:
getstatic com.google.protobuf.UnsafeUtil.IS_ANDROID_32:Z
ifeq 7
6: new com.google.protobuf.UnsafeUtil$Android32MemoryAccessor
dup
getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
invokespecial com.google.protobuf.UnsafeUtil$Android32MemoryAccessor.<init>:(Lsun/misc/Unsafe;)V
areturn
7: StackMap locals:
StackMap stack:
aconst_null
areturn
8: StackMap locals:
StackMap stack:
new com.google.protobuf.UnsafeUtil$JvmMemoryAccessor
dup
getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
invokespecial com.google.protobuf.UnsafeUtil$JvmMemoryAccessor.<init>:(Lsun/misc/Unsafe;)V
areturn
LocalVariableTable:
Start End Slot Name Signature
private static boolean supportsUnsafeArrayOperations();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=1, args_size=0
0: getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 0
start local 0 3: aload 0
ldc "objectFieldOffset"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/reflect/Field;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
4: aload 0
ldc "arrayBaseOffset"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
5: aload 0
ldc "arrayIndexScale"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
6: aload 0
ldc "getInt"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
7: aload 0
ldc "putInt"
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
8: aload 0
ldc "getLong"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
9: aload 0
ldc "putLong"
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
10: aload 0
ldc "getObject"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
11: aload 0
ldc "putObject"
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
ldc Ljava/lang/Object;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
12: invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
ifeq 14
13: iconst_1
ireturn
14: StackMap locals: java.lang.Class
StackMap stack:
aload 0
ldc "getByte"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
15: aload 0
ldc "putByte"
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
16: aload 0
ldc "getBoolean"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
17: aload 0
ldc "putBoolean"
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
18: aload 0
ldc "getFloat"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
19: aload 0
ldc "putFloat"
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Float.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
20: aload 0
ldc "getDouble"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
21: aload 0
ldc "putDouble"
iconst_3
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Double.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
22: iconst_1
ireturn
end local 0 23: StackMap locals:
StackMap stack: java.lang.Throwable
astore 0
start local 0 24: getstatic com.google.protobuf.UnsafeUtil.logger:Ljava/util/logging/Logger;
25: getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
26: new java.lang.StringBuilder
dup
ldc "platform method missing - proto runtime falling back to safer methods: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
27: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
end local 0 28: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
3 23 0 clazz Ljava/lang/Class<*>;
24 28 0 e Ljava/lang/Throwable;
Exception table:
from to target type
2 13 23 Class java.lang.Throwable
14 22 23 Class java.lang.Throwable
private static boolean supportsUnsafeByteBufferOperations();
descriptor: ()Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=1, args_size=0
0: getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
ifnonnull 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
getstatic com.google.protobuf.UnsafeUtil.UNSAFE:Lsun/misc/Unsafe;
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
astore 0
start local 0 3: aload 0
ldc "objectFieldOffset"
iconst_1
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/reflect/Field;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
4: aload 0
ldc "getLong"
iconst_2
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
5: invokestatic com.google.protobuf.UnsafeUtil.bufferAddressField:()Ljava/lang/reflect/Field;
ifnonnull 7
6: iconst_0
ireturn
7: StackMap locals: java.lang.Class
StackMap stack:
invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
ifeq 9
8: iconst_1
ireturn
9: StackMap locals:
StackMap stack:
aload 0
ldc "getByte"
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
10: aload 0
ldc "putByte"
iconst_2
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
11: aload 0
ldc "getInt"
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
12: aload 0
ldc "putInt"
iconst_2
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
13: aload 0
ldc "getLong"
iconst_1
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
14: aload 0
ldc "putLong"
iconst_2
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
15: aload 0
ldc "copyMemory"
iconst_3
anewarray java.lang.Class
dup
iconst_0
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
16: aload 0
ldc "copyMemory"
iconst_5
anewarray java.lang.Class
dup
iconst_0
ldc Ljava/lang/Object;
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
ldc Ljava/lang/Object;
aastore
dup
iconst_3
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_4
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
17: iconst_1
ireturn
end local 0 18: StackMap locals:
StackMap stack: java.lang.Throwable
astore 0
start local 0 19: getstatic com.google.protobuf.UnsafeUtil.logger:Ljava/util/logging/Logger;
20: getstatic java.util.logging.Level.WARNING:Ljava/util/logging/Level;
21: new java.lang.StringBuilder
dup
ldc "platform method missing - proto runtime falling back to safer methods: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 0
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
22: invokevirtual java.util.logging.Logger.log:(Ljava/util/logging/Level;Ljava/lang/String;)V
end local 0 23: iconst_0
ireturn
LocalVariableTable:
Start End Slot Name Signature
3 18 0 clazz Ljava/lang/Class<*>;
19 23 0 e Ljava/lang/Throwable;
Exception table:
from to target type
2 6 18 Class java.lang.Throwable
7 8 18 Class java.lang.Throwable
9 17 18 Class java.lang.Throwable
private static boolean determineAndroidSupportByAddressSize(java.lang.Class<?>);
descriptor: (Ljava/lang/Class;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
getstatic com.google.protobuf.UnsafeUtil.MEMORY_CLASS:Ljava/lang/Class;
astore 1
start local 1 3: aload 1
ldc "peekLong"
iconst_2
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
dup
iconst_1
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
4: aload 1
ldc "pokeLong"
iconst_3
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
dup
iconst_1
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
5: aload 1
ldc "pokeInt"
iconst_3
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
dup
iconst_1
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_2
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
6: aload 1
ldc "peekInt"
iconst_2
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
dup
iconst_1
getstatic java.lang.Boolean.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
7: aload 1
ldc "pokeByte"
iconst_2
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
dup
iconst_1
getstatic java.lang.Byte.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
8: aload 1
ldc "peekByte"
iconst_1
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
9: aload 1
ldc "pokeByteArray"
iconst_4
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
dup
iconst_1
ldc [B
aastore
dup
iconst_2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_3
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
10: aload 1
ldc "peekByteArray"
iconst_4
anewarray java.lang.Class
dup
iconst_0
aload 0
aastore
dup
iconst_1
ldc [B
aastore
dup
iconst_2
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
dup
iconst_3
getstatic java.lang.Integer.TYPE:Ljava/lang/Class;
aastore
invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
pop
11: iconst_1
ireturn
end local 1 12: StackMap locals:
StackMap stack: java.lang.Throwable
pop
13: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 addressClass Ljava/lang/Class<*>;
3 12 1 clazz Ljava/lang/Class<*>;
Exception table:
from to target type
2 11 12 Class java.lang.Throwable
Signature: (Ljava/lang/Class<*>;)Z
MethodParameters:
Name Flags
addressClass
private static java.lang.reflect.Field bufferAddressField();
descriptor: ()Ljava/lang/reflect/Field;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=0
0: invokestatic com.google.protobuf.Android.isOnAndroidDevice:()Z
ifeq 4
1: ldc Ljava/nio/Buffer;
ldc "effectiveDirectAddress"
invokestatic com.google.protobuf.UnsafeUtil.field:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 0
start local 0 2: aload 0
ifnull 4
3: aload 0
areturn
end local 0 4: StackMap locals:
StackMap stack:
ldc Ljava/nio/Buffer;
ldc "address"
invokestatic com.google.protobuf.UnsafeUtil.field:(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 0
start local 0 5: aload 0
ifnull 6
aload 0
invokevirtual java.lang.reflect.Field.getType:()Ljava/lang/Class;
getstatic java.lang.Long.TYPE:Ljava/lang/Class;
if_acmpne 6
aload 0
goto 7
StackMap locals: java.lang.reflect.Field
StackMap stack:
6: aconst_null
StackMap locals:
StackMap stack: java.lang.reflect.Field
7: areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
2 4 0 field Ljava/lang/reflect/Field;
5 8 0 field Ljava/lang/reflect/Field;
private static int firstDifferingByteIndexNativeEndian(long, long);
descriptor: (JJ)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 2 0: getstatic com.google.protobuf.UnsafeUtil.IS_BIG_ENDIAN:Z
ifeq 2
1: lload 0
lload 2
lxor
invokestatic java.lang.Long.numberOfLeadingZeros:(J)I
goto 3
2: StackMap locals:
StackMap stack:
lload 0
lload 2
lxor
invokestatic java.lang.Long.numberOfTrailingZeros:(J)I
3: StackMap locals:
StackMap stack: int
istore 4
start local 4 4: iload 4
iconst_3
ishr
ireturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 left J
0 5 2 right J
4 5 4 n I
MethodParameters:
Name Flags
left
right
static int mismatch(byte[], int, byte[], int, int);
descriptor: ([BI[BII)I
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=12, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 1
iflt 5
1: iload 3
iflt 5
2: iload 4
iflt 5
3: iload 1
iload 4
iadd
aload 0
arraylength
if_icmpgt 5
4: iload 3
iload 4
iadd
aload 2
arraylength
if_icmple 6
5: StackMap locals:
StackMap stack:
new java.lang.IndexOutOfBoundsException
dup
invokespecial java.lang.IndexOutOfBoundsException.<init>:()V
athrow
6: StackMap locals:
StackMap stack:
iconst_0
istore 5
start local 5 7: getstatic com.google.protobuf.UnsafeUtil.HAS_UNSAFE_ARRAY_OPERATIONS:Z
ifeq 26
8: getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_ALIGNMENT:I
iload 1
iadd
bipush 7
iand
istore 6
start local 6 9: goto 13
10: StackMap locals: int int
StackMap stack:
aload 0
iload 1
iload 5
iadd
baload
aload 2
iload 3
iload 5
iadd
baload
if_icmpeq 12
11: iload 5
ireturn
12: StackMap locals:
StackMap stack:
iinc 5 1
iinc 6 1
13: StackMap locals:
StackMap stack:
iload 5
iload 4
if_icmpge 14
iload 6
bipush 7
iand
ifne 10
14: StackMap locals:
StackMap stack:
iload 4
iload 5
isub
bipush -8
iand
iload 5
iadd
istore 7
start local 7 15: goto 21
16: StackMap locals: int
StackMap stack:
aload 0
getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
iload 1
i2l
ladd
iload 5
i2l
ladd
invokestatic com.google.protobuf.UnsafeUtil.getLong:(Ljava/lang/Object;J)J
lstore 8
start local 8 17: aload 2
getstatic com.google.protobuf.UnsafeUtil.BYTE_ARRAY_BASE_OFFSET:J
iload 3
i2l
ladd
iload 5
i2l
ladd
invokestatic com.google.protobuf.UnsafeUtil.getLong:(Ljava/lang/Object;J)J
lstore 10
start local 10 18: lload 8
lload 10
lcmp
ifeq 20
19: iload 5
lload 8
lload 10
invokestatic com.google.protobuf.UnsafeUtil.firstDifferingByteIndexNativeEndian:(JJ)I
iadd
ireturn
end local 10 end local 8 20: StackMap locals:
StackMap stack:
iinc 5 8
StackMap locals:
StackMap stack:
21: iload 5
iload 7
if_icmplt 16
end local 7 end local 6 22: goto 26
23: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 5
iadd
baload
aload 2
iload 3
iload 5
iadd
baload
if_icmpeq 25
24: iload 5
ireturn
25: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
26: iload 5
iload 4
if_icmplt 23
27: iconst_m1
ireturn
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 28 0 left [B
0 28 1 leftOff I
0 28 2 right [B
0 28 3 rightOff I
0 28 4 length I
7 28 5 index I
9 22 6 leftAlignment I
15 22 7 strideLength I
17 20 8 leftLongWord J
18 20 10 rightLongWord J
MethodParameters:
Name Flags
left
leftOff
right
rightOff
length
private static long fieldOffset(java.lang.reflect.Field);
descriptor: (Ljava/lang/reflect/Field;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
ifnull 1
getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
ifnonnull 2
StackMap locals:
StackMap stack:
1: ldc -1
goto 3
StackMap locals:
StackMap stack:
2: getstatic com.google.protobuf.UnsafeUtil.MEMORY_ACCESSOR:Lcom/google/protobuf/UnsafeUtil$MemoryAccessor;
aload 0
invokevirtual com.google.protobuf.UnsafeUtil$MemoryAccessor.objectFieldOffset:(Ljava/lang/reflect/Field;)J
StackMap locals:
StackMap stack: long
3: lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 field Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
field
private static java.lang.reflect.Field field(java.lang.Class<?>, java.lang.String);
descriptor: (Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual java.lang.Class.getDeclaredField:(Ljava/lang/String;)Ljava/lang/reflect/Field;
astore 2
start local 2 1: goto 4
end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
2: pop
3: aconst_null
astore 2
start local 2 4: StackMap locals: java.lang.reflect.Field
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 clazz Ljava/lang/Class<*>;
0 5 1 fieldName Ljava/lang/String;
1 2 2 field Ljava/lang/reflect/Field;
4 5 2 field Ljava/lang/reflect/Field;
Exception table:
from to target type
0 1 2 Class java.lang.Throwable
Signature: (Ljava/lang/Class<*>;Ljava/lang/String;)Ljava/lang/reflect/Field;
MethodParameters:
Name Flags
clazz
fieldName
private static byte getByteBigEndian(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
ldc -4
land
invokestatic com.google.protobuf.UnsafeUtil.getInt:(Ljava/lang/Object;J)I
lload 1
ldc -1
lxor
ldc 3
land
iconst_3
lshl
l2i
iushr
sipush 255
iand
i2b
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
private static byte getByteLittleEndian(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)B
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
ldc -4
land
invokestatic com.google.protobuf.UnsafeUtil.getInt:(Ljava/lang/Object;J)I
lload 1
ldc 3
land
iconst_3
lshl
l2i
iushr
sipush 255
iand
i2b
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 target Ljava/lang/Object;
0 1 1 offset J
MethodParameters:
Name Flags
target
offset
private static void putByteBigEndian(java.lang.Object, long, byte);
descriptor: (Ljava/lang/Object;JB)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
ldc -4
land
invokestatic com.google.protobuf.UnsafeUtil.getInt:(Ljava/lang/Object;J)I
istore 4
start local 4 1: lload 1
l2i
iconst_m1
ixor
iconst_3
iand
iconst_3
ishl
istore 5
start local 5 2: iload 4
sipush 255
iload 5
ishl
iconst_m1
ixor
iand
sipush 255
iload 3
iand
iload 5
ishl
ior
istore 6
start local 6 3: aload 0
lload 1
ldc -4
land
iload 6
invokestatic com.google.protobuf.UnsafeUtil.putInt:(Ljava/lang/Object;JI)V
4: return
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 5 0 target Ljava/lang/Object;
0 5 1 offset J
0 5 3 value B
1 5 4 intValue I
2 5 5 shift I
3 5 6 output I
MethodParameters:
Name Flags
target
offset
value
private static void putByteLittleEndian(java.lang.Object, long, byte);
descriptor: (Ljava/lang/Object;JB)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
ldc -4
land
invokestatic com.google.protobuf.UnsafeUtil.getInt:(Ljava/lang/Object;J)I
istore 4
start local 4 1: lload 1
l2i
iconst_3
iand
iconst_3
ishl
istore 5
start local 5 2: iload 4
sipush 255
iload 5
ishl
iconst_m1
ixor
iand
sipush 255
iload 3
iand
iload 5
ishl
ior
istore 6
start local 6 3: aload 0
lload 1
ldc -4
land
iload 6
invokestatic com.google.protobuf.UnsafeUtil.putInt:(Ljava/lang/Object;JI)V
4: return
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 5 0 target Ljava/lang/Object;
0 5 1 offset J
0 5 3 value B
1 5 4 intValue I
2 5 5 shift I
3 5 6 output I
MethodParameters:
Name Flags
target
offset
value
private static boolean getBooleanBigEndian(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokestatic com.google.protobuf.UnsafeUtil.getByteBigEndian:(Ljava/lang/Object;J)B
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
MethodParameters:
Name Flags
target
offset
private static boolean getBooleanLittleEndian(java.lang.Object, long);
descriptor: (Ljava/lang/Object;J)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokestatic com.google.protobuf.UnsafeUtil.getByteLittleEndian:(Ljava/lang/Object;J)B
ifeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljava/lang/Object;
0 2 1 offset J
MethodParameters:
Name Flags
target
offset
private static void putBooleanBigEndian(java.lang.Object, long, boolean);
descriptor: (Ljava/lang/Object;JZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
iload 3
ifeq 1
iconst_1
goto 2
StackMap locals: java.lang.Object long int
StackMap stack: java.lang.Object long
1: iconst_0
StackMap locals: java.lang.Object long int
StackMap stack: java.lang.Object long int
2: i2b
invokestatic com.google.protobuf.UnsafeUtil.putByteBigEndian:(Ljava/lang/Object;JB)V
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target Ljava/lang/Object;
0 4 1 offset J
0 4 3 value Z
MethodParameters:
Name Flags
target
offset
value
private static void putBooleanLittleEndian(java.lang.Object, long, boolean);
descriptor: (Ljava/lang/Object;JZ)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 3 0: aload 0
lload 1
iload 3
ifeq 1
iconst_1
goto 2
StackMap locals: java.lang.Object long int
StackMap stack: java.lang.Object long
1: iconst_0
StackMap locals: java.lang.Object long int
StackMap stack: java.lang.Object long int
2: i2b
invokestatic com.google.protobuf.UnsafeUtil.putByteLittleEndian:(Ljava/lang/Object;JB)V
3: return
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 target Ljava/lang/Object;
0 4 1 offset J
0 4 3 value Z
MethodParameters:
Name Flags
target
offset
value
}
SourceFile: "UnsafeUtil.java"
NestMembers:
com.google.protobuf.UnsafeUtil$1 com.google.protobuf.UnsafeUtil$Android32MemoryAccessor com.google.protobuf.UnsafeUtil$Android64MemoryAccessor com.google.protobuf.UnsafeUtil$JvmMemoryAccessor com.google.protobuf.UnsafeUtil$MemoryAccessor
InnerClasses:
com.google.protobuf.UnsafeUtil$1
private final Android32MemoryAccessor = com.google.protobuf.UnsafeUtil$Android32MemoryAccessor of com.google.protobuf.UnsafeUtil
private final Android64MemoryAccessor = com.google.protobuf.UnsafeUtil$Android64MemoryAccessor of com.google.protobuf.UnsafeUtil
private final JvmMemoryAccessor = com.google.protobuf.UnsafeUtil$JvmMemoryAccessor of com.google.protobuf.UnsafeUtil
private abstract MemoryAccessor = com.google.protobuf.UnsafeUtil$MemoryAccessor of com.google.protobuf.UnsafeUtil