t2.smali
.class public final Lf6/t2;
.super Ljava/lang/Object;
.source "UnsafeUtil.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lf6/t2$b;,
Lf6/t2$c;,
Lf6/t2$d;,
Lf6/t2$e;
}
.end annotation
# static fields
.field public static final a:Ljava/util/logging/Logger;
.field public static final b:Lsun/misc/Unsafe;
.field public static final c:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
.field public static final d:Z
.field public static final e:Z
.field public static final f:Lf6/t2$e;
.field public static final g:Z
.field public static final h:Z
.field public static final i:J
.field public static final j:J
.field public static final k:Z
# direct methods
.method public static constructor <clinit>()V
.registers 8
const-class v0, [Ljava/lang/Object;
const-class v1, [D
const-class v2, [F
const-class v3, [J
const-class v4, [I
const-class v5, [Z
const-class v6, Lf6/t2;
invoke-virtual {v6}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v6
invoke-static {v6}, Ljava/util/logging/Logger;->getLogger(Ljava/lang/String;)Ljava/util/logging/Logger;
move-result-object v6
sput-object v6, Lf6/t2;->a:Ljava/util/logging/Logger;
invoke-static {}, Lf6/t2;->c()Lsun/misc/Unsafe;
move-result-object v6
sput-object v6, Lf6/t2;->b:Lsun/misc/Unsafe;
invoke-static {}, Lf6/e;->a()Ljava/lang/Class;
move-result-object v6
sput-object v6, Lf6/t2;->c:Ljava/lang/Class;
sget-object v6, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
invoke-static {v6}, Lf6/t2;->d(Ljava/lang/Class;)Z
move-result v6
sput-boolean v6, Lf6/t2;->d:Z
sget-object v6, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
invoke-static {v6}, Lf6/t2;->d(Ljava/lang/Class;)Z
move-result v6
sput-boolean v6, Lf6/t2;->e:Z
invoke-static {}, Lf6/t2;->b()Lf6/t2$e;
move-result-object v6
sput-object v6, Lf6/t2;->f:Lf6/t2$e;
invoke-static {}, Lf6/t2;->g()Z
move-result v6
sput-boolean v6, Lf6/t2;->g:Z
invoke-static {}, Lf6/t2;->f()Z
move-result v6
sput-boolean v6, Lf6/t2;->h:Z
const-class v6, [B
invoke-static {v6}, Lf6/t2;->b(Ljava/lang/Class;)I
move-result v6
int-to-long v6, v6
sput-wide v6, Lf6/t2;->i:J
invoke-static {v5}, Lf6/t2;->b(Ljava/lang/Class;)I
invoke-static {v5}, Lf6/t2;->c(Ljava/lang/Class;)I
invoke-static {v4}, Lf6/t2;->b(Ljava/lang/Class;)I
invoke-static {v4}, Lf6/t2;->c(Ljava/lang/Class;)I
invoke-static {v3}, Lf6/t2;->b(Ljava/lang/Class;)I
invoke-static {v3}, Lf6/t2;->c(Ljava/lang/Class;)I
invoke-static {v2}, Lf6/t2;->b(Ljava/lang/Class;)I
invoke-static {v2}, Lf6/t2;->c(Ljava/lang/Class;)I
invoke-static {v1}, Lf6/t2;->b(Ljava/lang/Class;)I
invoke-static {v1}, Lf6/t2;->c(Ljava/lang/Class;)I
invoke-static {v0}, Lf6/t2;->b(Ljava/lang/Class;)I
invoke-static {v0}, Lf6/t2;->c(Ljava/lang/Class;)I
invoke-static {}, Lf6/t2;->a()Ljava/lang/reflect/Field;
move-result-object v0
invoke-static {v0}, Lf6/t2;->a(Ljava/lang/reflect/Field;)J
move-result-wide v0
sput-wide v0, Lf6/t2;->j:J
invoke-static {}, Ljava/nio/ByteOrder;->nativeOrder()Ljava/nio/ByteOrder;
move-result-object v0
sget-object v1, Ljava/nio/ByteOrder;->BIG_ENDIAN:Ljava/nio/ByteOrder;
if-ne v0, v1, :cond_87
const/4 v0, 0x1
goto :goto_88
:cond_87
const/4 v0, 0x0
:goto_88
sput-boolean v0, Lf6/t2;->k:Z
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static a(J)B
.registers 3
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1}, Lf6/t2$e;->a(J)B
move-result p0
return p0
.end method
.method public static synthetic a(Ljava/lang/Object;J)B
.registers 3
invoke-static {p0, p1, p2}, Lf6/t2;->h(Ljava/lang/Object;J)B
move-result p0
return p0
.end method
.method public static a([BJ)B
.registers 6
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
sget-wide v1, Lf6/t2;->i:J
add-long/2addr v1, p1
invoke-virtual {v0, p0, v1, v2}, Lf6/t2$e;->b(Ljava/lang/Object;J)B
move-result p0
return p0
.end method
.method public static a(Ljava/lang/reflect/Field;)J
.registers 3
if-eqz p0, :cond_c
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
if-nez v0, :cond_7
goto :goto_c
:cond_7
invoke-virtual {v0, p0}, Lf6/t2$e;->b(Ljava/lang/reflect/Field;)J
move-result-wide v0
goto :goto_e
:cond_c
:goto_c
const-wide/16 v0, -0x1
:goto_e
return-wide v0
.end method
.method public static a(Ljava/nio/ByteBuffer;)J
.registers 4
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
sget-wide v1, Lf6/t2;->j:J
invoke-virtual {v0, p0, v1, v2}, Lf6/t2$e;->f(Ljava/lang/Object;J)J
move-result-wide v0
return-wide v0
.end method
.method public static a(Ljava/lang/Class;)Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
:try_start_0
sget-object v0, Lf6/t2;->b:Lsun/misc/Unsafe;
invoke-virtual {v0, p0}, Lsun/misc/Unsafe;->allocateInstance(Ljava/lang/Class;)Ljava/lang/Object;
move-result-object p0
:try_end_6
.catch Ljava/lang/InstantiationException; {:try_start_0 .. :try_end_6} :catch_7
return-object p0
:catch_7
move-exception p0
new-instance v0, Ljava/lang/IllegalStateException;
invoke-direct {v0, p0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/Throwable;)V
throw v0
.end method
.method public static a()Ljava/lang/reflect/Field;
.registers 3
invoke-static {}, Lf6/e;->b()Z
move-result v0
if-eqz v0, :cond_11
const-class v0, Ljava/nio/Buffer;
const-string v1, "effectiveDirectAddress"
invoke-static {v0, v1}, Lf6/t2;->a(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
if-eqz v0, :cond_11
return-object v0
:cond_11
const-class v0, Ljava/nio/Buffer;
const-string v1, "address"
invoke-static {v0, v1}, Lf6/t2;->a(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
if-eqz v0, :cond_24
invoke-virtual {v0}, Ljava/lang/reflect/Field;->getType()Ljava/lang/Class;
move-result-object v1
sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
if-ne v1, v2, :cond_24
goto :goto_25
:cond_24
const/4 v0, 0x0
:goto_25
return-object v0
.end method
.method public static a(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/reflect/Field;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/String;",
")",
"Ljava/lang/reflect/Field;"
}
.end annotation
:try_start_0
invoke-virtual {p0, p1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object p0
:try_end_4
.catchall {:try_start_0 .. :try_end_4} :catchall_5
goto :goto_6
:catchall_5
const/4 p0, 0x0
:goto_6
return-object p0
.end method
.method public static a(J[BJJ)V
.registers 15
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
move-wide v1, p0
move-object v3, p2
move-wide v4, p3
move-wide v6, p5
invoke-virtual/range {v0 .. v7}, Lf6/t2$e;->a(J[BJJ)V
return-void
.end method
.method public static synthetic a(Ljava/lang/Object;JB)V
.registers 4
invoke-static {p0, p1, p2, p3}, Lf6/t2;->c(Ljava/lang/Object;JB)V
return-void
.end method
.method public static a(Ljava/lang/Object;JD)V
.registers 11
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
move-object v1, p0
move-wide v2, p1
move-wide v4, p3
invoke-virtual/range {v0 .. v5}, Lf6/t2$e;->a(Ljava/lang/Object;JD)V
return-void
.end method
.method public static a(Ljava/lang/Object;JF)V
.registers 5
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2, p3}, Lf6/t2$e;->a(Ljava/lang/Object;JF)V
return-void
.end method
.method public static a(Ljava/lang/Object;JI)V
.registers 5
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2, p3}, Lf6/t2$e;->a(Ljava/lang/Object;JI)V
return-void
.end method
.method public static a(Ljava/lang/Object;JJ)V
.registers 11
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
move-object v1, p0
move-wide v2, p1
move-wide v4, p3
invoke-virtual/range {v0 .. v5}, Lf6/t2$e;->a(Ljava/lang/Object;JJ)V
return-void
.end method
.method public static a(Ljava/lang/Object;JLjava/lang/Object;)V
.registers 5
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2, p3}, Lf6/t2$e;->a(Ljava/lang/Object;JLjava/lang/Object;)V
return-void
.end method
.method public static synthetic a(Ljava/lang/Object;JZ)V
.registers 4
invoke-static {p0, p1, p2, p3}, Lf6/t2;->d(Ljava/lang/Object;JZ)V
return-void
.end method
.method public static a([BJB)V
.registers 7
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
sget-wide v1, Lf6/t2;->i:J
add-long/2addr v1, p1
invoke-virtual {v0, p0, v1, v2, p3}, Lf6/t2$e;->a(Ljava/lang/Object;JB)V
return-void
.end method
.method public static synthetic b(Ljava/lang/Object;J)B
.registers 3
invoke-static {p0, p1, p2}, Lf6/t2;->i(Ljava/lang/Object;J)B
move-result p0
return p0
.end method
.method public static b(Ljava/lang/Class;)I
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)I"
}
.end annotation
sget-boolean v0, Lf6/t2;->h:Z
if-eqz v0, :cond_b
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0}, Lf6/t2$e;->a(Ljava/lang/Class;)I
move-result p0
goto :goto_c
:cond_b
const/4 p0, -0x1
:goto_c
return p0
.end method
.method public static b(J)J
.registers 3
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1}, Lf6/t2$e;->b(J)J
move-result-wide p0
return-wide p0
.end method
.method public static b()Lf6/t2$e;
.registers 2
sget-object v0, Lf6/t2;->b:Lsun/misc/Unsafe;
const/4 v1, 0x0
if-nez v0, :cond_6
return-object v1
:cond_6
invoke-static {}, Lf6/e;->b()Z
move-result v0
if-eqz v0, :cond_25
sget-boolean v0, Lf6/t2;->d:Z
if-eqz v0, :cond_18
new-instance v0, Lf6/t2$c;
sget-object v1, Lf6/t2;->b:Lsun/misc/Unsafe;
invoke-direct {v0, v1}, Lf6/t2$c;-><init>(Lsun/misc/Unsafe;)V
return-object v0
:cond_18
sget-boolean v0, Lf6/t2;->e:Z
if-eqz v0, :cond_24
new-instance v0, Lf6/t2$b;
sget-object v1, Lf6/t2;->b:Lsun/misc/Unsafe;
invoke-direct {v0, v1}, Lf6/t2$b;-><init>(Lsun/misc/Unsafe;)V
return-object v0
:cond_24
return-object v1
:cond_25
new-instance v0, Lf6/t2$d;
sget-object v1, Lf6/t2;->b:Lsun/misc/Unsafe;
invoke-direct {v0, v1}, Lf6/t2$d;-><init>(Lsun/misc/Unsafe;)V
return-object v0
.end method
.method public static b(Ljava/lang/reflect/Field;)Ljava/lang/Object;
.registers 2
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0}, Lf6/t2$e;->a(Ljava/lang/reflect/Field;)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method
.method public static synthetic b(Ljava/lang/Object;JB)V
.registers 4
invoke-static {p0, p1, p2, p3}, Lf6/t2;->d(Ljava/lang/Object;JB)V
return-void
.end method
.method public static synthetic b(Ljava/lang/Object;JZ)V
.registers 4
invoke-static {p0, p1, p2, p3}, Lf6/t2;->e(Ljava/lang/Object;JZ)V
return-void
.end method
.method public static c(Ljava/lang/Class;)I
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)I"
}
.end annotation
sget-boolean v0, Lf6/t2;->h:Z
if-eqz v0, :cond_b
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0}, Lf6/t2$e;->b(Ljava/lang/Class;)I
move-result p0
goto :goto_c
:cond_b
const/4 p0, -0x1
:goto_c
return p0
.end method
.method public static c(Ljava/lang/reflect/Field;)J
.registers 3
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0}, Lf6/t2$e;->b(Ljava/lang/reflect/Field;)J
move-result-wide v0
return-wide v0
.end method
.method public static c()Lsun/misc/Unsafe;
.registers 1
:try_start_0
new-instance v0, Lf6/t2$a;
invoke-direct {v0}, Lf6/t2$a;-><init>()V
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_b
.catchall {:try_start_0 .. :try_end_b} :catchall_c
goto :goto_d
:catchall_c
const/4 v0, 0x0
:goto_d
return-object v0
.end method
.method public static c(Ljava/lang/Object;JB)V
.registers 8
const-wide/16 v0, -0x4
and-long/2addr v0, p1
invoke-static {p0, v0, v1}, Lf6/t2;->l(Ljava/lang/Object;J)I
move-result v2
long-to-int p2, p1
xor-int/lit8 p1, p2, -0x1
and-int/lit8 p1, p1, 0x3
shl-int/lit8 p1, p1, 0x3
const/16 p2, 0xff
shl-int v3, p2, p1
xor-int/lit8 v3, v3, -0x1
and-int/2addr v2, v3
and-int/2addr p2, p3
shl-int p1, p2, p1
or-int/2addr p1, v2
invoke-static {p0, v0, v1, p1}, Lf6/t2;->a(Ljava/lang/Object;JI)V
return-void
.end method
.method public static c(Ljava/lang/Object;JZ)V
.registers 5
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2, p3}, Lf6/t2$e;->a(Ljava/lang/Object;JZ)V
return-void
.end method
.method public static synthetic c(Ljava/lang/Object;J)Z
.registers 3
invoke-static {p0, p1, p2}, Lf6/t2;->f(Ljava/lang/Object;J)Z
move-result p0
return p0
.end method
.method public static d(Ljava/lang/Object;JB)V
.registers 8
const-wide/16 v0, -0x4
and-long/2addr v0, p1
invoke-static {p0, v0, v1}, Lf6/t2;->l(Ljava/lang/Object;J)I
move-result v2
long-to-int p2, p1
and-int/lit8 p1, p2, 0x3
shl-int/lit8 p1, p1, 0x3
const/16 p2, 0xff
shl-int v3, p2, p1
xor-int/lit8 v3, v3, -0x1
and-int/2addr v2, v3
and-int/2addr p2, p3
shl-int p1, p2, p1
or-int/2addr p1, v2
invoke-static {p0, v0, v1, p1}, Lf6/t2;->a(Ljava/lang/Object;JI)V
return-void
.end method
.method public static d(Ljava/lang/Object;JZ)V
.registers 4
int-to-byte p3, p3
invoke-static {p0, p1, p2, p3}, Lf6/t2;->c(Ljava/lang/Object;JB)V
return-void
.end method
.method public static d()Z
.registers 1
sget-boolean v0, Lf6/t2;->h:Z
return v0
.end method
.method public static d(Ljava/lang/Class;)Z
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
const-class v0, [B
invoke-static {}, Lf6/e;->b()Z
move-result v1
const/4 v2, 0x0
if-nez v1, :cond_a
return v2
:cond_a
:try_start_a
sget-object v1, Lf6/t2;->c:Ljava/lang/Class;
const-string v3, "peekLong"
const/4 v4, 0x2
new-array v5, v4, [Ljava/lang/Class;
aput-object p0, v5, v2
sget-object v6, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
const/4 v7, 0x1
aput-object v6, v5, v7
invoke-virtual {v1, v3, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "pokeLong"
const/4 v5, 0x3
new-array v6, v5, [Ljava/lang/Class;
aput-object p0, v6, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v6, v7
sget-object v8, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
aput-object v8, v6, v4
invoke-virtual {v1, v3, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "pokeInt"
new-array v6, v5, [Ljava/lang/Class;
aput-object p0, v6, v2
sget-object v8, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v8, v6, v7
sget-object v8, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
aput-object v8, v6, v4
invoke-virtual {v1, v3, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "peekInt"
new-array v6, v4, [Ljava/lang/Class;
aput-object p0, v6, v2
sget-object v8, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
aput-object v8, v6, v7
invoke-virtual {v1, v3, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "pokeByte"
new-array v6, v4, [Ljava/lang/Class;
aput-object p0, v6, v2
sget-object v8, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
aput-object v8, v6, v7
invoke-virtual {v1, v3, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "peekByte"
new-array v6, v7, [Ljava/lang/Class;
aput-object p0, v6, v2
invoke-virtual {v1, v3, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "pokeByteArray"
const/4 v6, 0x4
new-array v8, v6, [Ljava/lang/Class;
aput-object p0, v8, v2
aput-object v0, v8, v7
sget-object v9, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v9, v8, v4
sget-object v9, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v9, v8, v5
invoke-virtual {v1, v3, v8}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "peekByteArray"
new-array v6, v6, [Ljava/lang/Class;
aput-object p0, v6, v2
aput-object v0, v6, v7
sget-object p0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object p0, v6, v4
sget-object p0, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object p0, v6, v5
invoke-virtual {v1, v3, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_88
.catchall {:try_start_a .. :try_end_88} :catchall_89
return v7
:catchall_89
return v2
.end method
.method public static synthetic d(Ljava/lang/Object;J)Z
.registers 3
invoke-static {p0, p1, p2}, Lf6/t2;->g(Ljava/lang/Object;J)Z
move-result p0
return p0
.end method
.method public static e(Ljava/lang/Object;JZ)V
.registers 4
int-to-byte p3, p3
invoke-static {p0, p1, p2, p3}, Lf6/t2;->d(Ljava/lang/Object;JB)V
return-void
.end method
.method public static e()Z
.registers 1
sget-boolean v0, Lf6/t2;->g:Z
return v0
.end method
.method public static e(Ljava/lang/Object;J)Z
.registers 4
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2}, Lf6/t2$e;->a(Ljava/lang/Object;J)Z
move-result p0
return p0
.end method
.method public static f()Z
.registers 9
const-class v0, Ljava/lang/Object;
sget-object v1, Lf6/t2;->b:Lsun/misc/Unsafe;
const/4 v2, 0x0
if-nez v1, :cond_8
return v2
:cond_8
:try_start_8
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
const-string v3, "objectFieldOffset"
const/4 v4, 0x1
new-array v5, v4, [Ljava/lang/Class;
const-class v6, Ljava/lang/reflect/Field;
aput-object v6, v5, v2
invoke-virtual {v1, v3, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "arrayBaseOffset"
new-array v5, v4, [Ljava/lang/Class;
const-class v6, Ljava/lang/Class;
aput-object v6, v5, v2
invoke-virtual {v1, v3, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "arrayIndexScale"
new-array v5, v4, [Ljava/lang/Class;
const-class v6, Ljava/lang/Class;
aput-object v6, v5, v2
invoke-virtual {v1, v3, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "getInt"
const/4 v5, 0x2
new-array v6, v5, [Ljava/lang/Class;
aput-object v0, v6, v2
sget-object v7, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v7, v6, v4
invoke-virtual {v1, v3, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "putInt"
const/4 v6, 0x3
new-array v7, v6, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
sget-object v8, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v5
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "getLong"
new-array v7, v5, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "putLong"
new-array v7, v6, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v5
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "getObject"
new-array v7, v5, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "putObject"
new-array v7, v6, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
aput-object v0, v7, v5
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
invoke-static {}, Lf6/e;->b()Z
move-result v3
if-eqz v3, :cond_8f
return v4
:cond_8f
const-string v3, "getByte"
new-array v7, v5, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "putByte"
new-array v7, v6, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
sget-object v8, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v5
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "getBoolean"
new-array v7, v5, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "putBoolean"
new-array v7, v6, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
sget-object v8, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v5
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "getFloat"
new-array v7, v5, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "putFloat"
new-array v7, v6, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
sget-object v8, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v5
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "getDouble"
new-array v7, v5, [Ljava/lang/Class;
aput-object v0, v7, v2
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
invoke-virtual {v1, v3, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v3, "putDouble"
new-array v6, v6, [Ljava/lang/Class;
aput-object v0, v6, v2
sget-object v0, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v0, v6, v4
sget-object v0, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
aput-object v0, v6, v5
invoke-virtual {v1, v3, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_107
.catchall {:try_start_8 .. :try_end_107} :catchall_108
return v4
:catchall_108
move-exception v0
sget-object v1, Lf6/t2;->a:Ljava/util/logging/Logger;
sget-object v3, Ljava/util/logging/Level;->WARNING:Ljava/util/logging/Level;
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/String;->length()I
move-result v4
add-int/lit8 v4, v4, 0x47
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5, v4}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v4, "platform method missing - proto runtime falling back to safer methods: "
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v3, v0}, Ljava/util/logging/Logger;->log(Ljava/util/logging/Level;Ljava/lang/String;)V
return v2
.end method
.method public static f(Ljava/lang/Object;J)Z
.registers 3
invoke-static {p0, p1, p2}, Lf6/t2;->h(Ljava/lang/Object;J)B
move-result p0
if-eqz p0, :cond_8
const/4 p0, 0x1
goto :goto_9
:cond_8
const/4 p0, 0x0
:goto_9
return p0
.end method
.method public static g()Z
.registers 10
const-string v0, "copyMemory"
const-string v1, "getLong"
const-class v2, Ljava/lang/Object;
sget-object v3, Lf6/t2;->b:Lsun/misc/Unsafe;
const/4 v4, 0x0
if-nez v3, :cond_c
return v4
:cond_c
:try_start_c
invoke-virtual {v3}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v3
const-string v5, "objectFieldOffset"
const/4 v6, 0x1
new-array v7, v6, [Ljava/lang/Class;
const-class v8, Ljava/lang/reflect/Field;
aput-object v8, v7, v4
invoke-virtual {v3, v5, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const/4 v5, 0x2
new-array v7, v5, [Ljava/lang/Class;
aput-object v2, v7, v4
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v6
invoke-virtual {v3, v1, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
invoke-static {}, Lf6/t2;->a()Ljava/lang/reflect/Field;
move-result-object v7
if-nez v7, :cond_2f
return v4
:cond_2f
invoke-static {}, Lf6/e;->b()Z
move-result v7
if-eqz v7, :cond_36
return v6
:cond_36
const-string v7, "getByte"
new-array v8, v6, [Ljava/lang/Class;
sget-object v9, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v9, v8, v4
invoke-virtual {v3, v7, v8}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v7, "putByte"
new-array v8, v5, [Ljava/lang/Class;
sget-object v9, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v9, v8, v4
sget-object v9, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
aput-object v9, v8, v6
invoke-virtual {v3, v7, v8}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v7, "getInt"
new-array v8, v6, [Ljava/lang/Class;
sget-object v9, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v9, v8, v4
invoke-virtual {v3, v7, v8}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v7, "putInt"
new-array v8, v5, [Ljava/lang/Class;
sget-object v9, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v9, v8, v4
sget-object v9, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v9, v8, v6
invoke-virtual {v3, v7, v8}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
new-array v7, v6, [Ljava/lang/Class;
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
invoke-virtual {v3, v1, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const-string v1, "putLong"
new-array v7, v5, [Ljava/lang/Class;
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v6
invoke-virtual {v3, v1, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const/4 v1, 0x3
new-array v7, v1, [Ljava/lang/Class;
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v4
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v6
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v5
invoke-virtual {v3, v0, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
const/4 v7, 0x5
new-array v7, v7, [Ljava/lang/Class;
aput-object v2, v7, v4
sget-object v8, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v8, v7, v6
aput-object v2, v7, v5
sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v2, v7, v1
const/4 v1, 0x4
sget-object v2, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v2, v7, v1
invoke-virtual {v3, v0, v7}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_ab
.catchall {:try_start_c .. :try_end_ab} :catchall_ac
return v6
:catchall_ac
move-exception v0
sget-object v1, Lf6/t2;->a:Ljava/util/logging/Logger;
sget-object v2, Ljava/util/logging/Level;->WARNING:Ljava/util/logging/Level;
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/String;->length()I
move-result v3
add-int/lit8 v3, v3, 0x47
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5, v3}, Ljava/lang/StringBuilder;-><init>(I)V
const-string v3, "platform method missing - proto runtime falling back to safer methods: "
invoke-virtual {v5, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v5}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v2, v0}, Ljava/util/logging/Logger;->log(Ljava/util/logging/Level;Ljava/lang/String;)V
return v4
.end method
.method public static g(Ljava/lang/Object;J)Z
.registers 3
invoke-static {p0, p1, p2}, Lf6/t2;->i(Ljava/lang/Object;J)B
move-result p0
if-eqz p0, :cond_8
const/4 p0, 0x1
goto :goto_9
:cond_8
const/4 p0, 0x0
:goto_9
return p0
.end method
.method public static h(Ljava/lang/Object;J)B
.registers 5
const-wide/16 v0, -0x4
and-long/2addr v0, p1
invoke-static {p0, v0, v1}, Lf6/t2;->l(Ljava/lang/Object;J)I
move-result p0
const-wide/16 v0, -0x1
xor-long/2addr p1, v0
const-wide/16 v0, 0x3
and-long/2addr p1, v0
const/4 v0, 0x3
shl-long/2addr p1, v0
long-to-int p2, p1
ushr-int/2addr p0, p2
and-int/lit16 p0, p0, 0xff
int-to-byte p0, p0
return p0
.end method
.method public static i(Ljava/lang/Object;J)B
.registers 5
const-wide/16 v0, -0x4
and-long/2addr v0, p1
invoke-static {p0, v0, v1}, Lf6/t2;->l(Ljava/lang/Object;J)I
move-result p0
const-wide/16 v0, 0x3
and-long/2addr p1, v0
const/4 v0, 0x3
shl-long/2addr p1, v0
long-to-int p2, p1
ushr-int/2addr p0, p2
and-int/lit16 p0, p0, 0xff
int-to-byte p0, p0
return p0
.end method
.method public static j(Ljava/lang/Object;J)D
.registers 4
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2}, Lf6/t2$e;->c(Ljava/lang/Object;J)D
move-result-wide p0
return-wide p0
.end method
.method public static k(Ljava/lang/Object;J)F
.registers 4
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2}, Lf6/t2$e;->d(Ljava/lang/Object;J)F
move-result p0
return p0
.end method
.method public static l(Ljava/lang/Object;J)I
.registers 4
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2}, Lf6/t2$e;->e(Ljava/lang/Object;J)I
move-result p0
return p0
.end method
.method public static m(Ljava/lang/Object;J)J
.registers 4
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2}, Lf6/t2$e;->f(Ljava/lang/Object;J)J
move-result-wide p0
return-wide p0
.end method
.method public static n(Ljava/lang/Object;J)Ljava/lang/Object;
.registers 4
sget-object v0, Lf6/t2;->f:Lf6/t2$e;
invoke-virtual {v0, p0, p1, p2}, Lf6/t2$e;->g(Ljava/lang/Object;J)Ljava/lang/Object;
move-result-object p0
return-object p0
.end method