ey.smali
.class final Lcom/google/protobuf/ey;
.super Ljava/lang/Object;
.source "UnsafeUtil.java"
# static fields
.field private static final bin:Z
.field private static final bio:J
.field private static final bog:Lsun/misc/Unsafe;
.field private static final boh:Z
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
.line 46
invoke-static {}, Lcom/google/protobuf/ey;->Fz()Lsun/misc/Unsafe;
move-result-object v0
sput-object v0, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
.line 48
invoke-static {}, Lcom/google/protobuf/ey;->FB()Z
move-result v0
sput-boolean v0, Lcom/google/protobuf/ey;->boh:Z
.line 49
invoke-static {}, Lcom/google/protobuf/ey;->FA()Z
move-result v0
.line 1184
sput-boolean v0, Lcom/google/protobuf/ey;->bin:Z
if-eqz v0, :cond_2e
sget-object v0, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
const-class v1, [B
invoke-virtual {v0, v1}, Lsun/misc/Unsafe;->arrayBaseOffset(Ljava/lang/Class;)I
move-result v0
.line 50
:goto_1c
int-to-long v0, v0
sput-wide v0, Lcom/google/protobuf/ey;->bio:J
.line 51
const-class v0, Ljava/nio/Buffer;
const-string v1, "address"
invoke-static {v0, v1}, Lcom/google/protobuf/ey;->c(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 1192
if-eqz v0, :cond_2d
sget-object v1, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
if-nez v1, :cond_30
:cond_2d
:goto_2d
return-void
.line 1184
:cond_2e
const/4 v0, -0x1
goto :goto_1c
.line 1192
:cond_30
sget-object v1, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
invoke-virtual {v1, v0}, Lsun/misc/Unsafe;->objectFieldOffset(Ljava/lang/reflect/Field;)J
goto :goto_2d
.end method
.method private static FA()Z
.registers 7
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 144
sget-object v2, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
if-eqz v2, :cond_77
.line 146
:try_start_6
sget-object v2, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
invoke-virtual {v2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
.line 147
const-string v3, "arrayBaseOffset"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 148
const-string v3, "getByte"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Ljava/lang/Object;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 149
const-string v3, "putByte"
const/4 v4, 0x3
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Ljava/lang/Object;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
const/4 v5, 0x2
sget-object v6, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 150
const-string v3, "getLong"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Ljava/lang/Object;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 151
const-string v3, "copyMemory"
const/4 v4, 0x5
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Ljava/lang/Object;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
const/4 v5, 0x2
const-class v6, Ljava/lang/Object;
aput-object v6, v4, v5
const/4 v5, 0x3
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
const/4 v5, 0x4
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_75
.catch Ljava/lang/Throwable; {:try_start_6 .. :try_end_75} :catch_76
.line 158
:goto_75
return v0
:catch_76
move-exception v0
:cond_77
move v0, v1
goto :goto_75
.end method
.method private static FB()Z
.registers 7
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 163
sget-object v2, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
if-eqz v2, :cond_70
.line 165
:try_start_6
sget-object v2, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
invoke-virtual {v2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v2
.line 166
const-string v3, "objectFieldOffset"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Ljava/lang/reflect/Field;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 167
const-string v3, "getByte"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 168
const-string v3, "getLong"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Ljava/lang/Object;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 169
const-string v3, "putByte"
const/4 v4, 0x2
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 170
const-string v3, "getLong"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
.line 171
const-string v3, "copyMemory"
const/4 v4, 0x3
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
const/4 v5, 0x1
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
const/4 v5, 0x2
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v6, v4, v5
invoke-virtual {v2, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_6e
.catch Ljava/lang/Throwable; {:try_start_6 .. :try_end_6e} :catch_6f
.line 177
:goto_6e
return v0
:catch_6f
move-exception v0
:cond_70
move v0, v1
goto :goto_6e
.end method
.method static Fw()Z
.registers 1
.prologue
.line 57
sget-boolean v0, Lcom/google/protobuf/ey;->bin:Z
return v0
.end method
.method static Fx()Z
.registers 1
.prologue
.line 61
sget-boolean v0, Lcom/google/protobuf/ey;->boh:Z
return v0
.end method
.method static Fy()J
.registers 2
.prologue
.line 65
sget-wide v0, Lcom/google/protobuf/ey;->bio:J
return-wide v0
.end method
.method private static Fz()Lsun/misc/Unsafe;
.registers 2
.prologue
.line 112
const/4 v1, 0x0
.line 114
:try_start_1
new-instance v0, Lcom/google/protobuf/ey$1;
invoke-direct {v0}, Lcom/google/protobuf/ey$1;-><init>()V
.line 115
invoke-static {v0}, Ljava/security/AccessController;->doPrivileged(Ljava/security/PrivilegedExceptionAction;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lsun/misc/Unsafe;
:try_end_c
.catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_c} :catch_d
.line 136
:goto_c
return-object v0
:catch_d
move-exception v0
move-object v0, v1
goto :goto_c
.end method
.method static a([BJ)B
.registers 4
.prologue
.line 69
sget-object v0, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
invoke-virtual {v0, p0, p1, p2}, Lsun/misc/Unsafe;->getByte(Ljava/lang/Object;J)B
move-result v0
return v0
.end method
.method static a([BJB)V
.registers 5
.prologue
.line 73
sget-object v0, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
invoke-virtual {v0, p0, p1, p2, p3}, Lsun/misc/Unsafe;->putByte(Ljava/lang/Object;JB)V
.line 74
return-void
.end method
.method static b([BJ)J
.registers 6
.prologue
.line 82
sget-object v0, Lcom/google/protobuf/ey;->bog:Lsun/misc/Unsafe;
invoke-virtual {v0, p0, p1, p2}, Lsun/misc/Unsafe;->getLong(Ljava/lang/Object;J)J
move-result-wide v0
return-wide v0
.end method
.method private static c(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class",
"<*>;",
"Ljava/lang/String;",
")",
"Ljava/lang/reflect/Field;"
}
.end annotation
.prologue
.line 202
:try_start_0
invoke-virtual {p0, p1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 203
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
:try_end_8
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_8} :catch_9
.line 208
:goto_8
return-object v0
.line 206
:catch_9
move-exception v0
const/4 v0, 0x0
goto :goto_8
.end method