q.smali
.class public final Lcom/alibaba/fastjson/parser/deserializer/q;
.super Ljava/lang/Object;
.source "SourceFile"
# interfaces
.implements Lcom/alibaba/fastjson/parser/deserializer/r;
# static fields
.field public static final a:Lcom/alibaba/fastjson/parser/deserializer/q;
# direct methods
.method public static constructor <clinit>()V
.registers 1
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/q;
invoke-direct {v0}, Lcom/alibaba/fastjson/parser/deserializer/q;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/parser/deserializer/q;->a:Lcom/alibaba/fastjson/parser/deserializer/q;
return-void
.end method
.method public constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public final b()I
.registers 2
const/4 v0, 0x2
return v0
.end method
.method public final c(Lcom/alibaba/fastjson/parser/a;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/alibaba/fastjson/parser/a;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
.line 1
const-class p3, Ljava/lang/Byte;
const-class v0, Ljava/lang/Short;
const-class v1, Ljava/lang/Double;
iget-object v2, p1, Lcom/alibaba/fastjson/parser/a;->f:Lcom/alibaba/fastjson/parser/c;
.line 2
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result v3
const/16 v4, 0x10
const/4 v5, 0x2
if-ne v3, v5, :cond_92
.line 3
sget-object p1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
if-eq p2, p1, :cond_82
if-ne p2, v1, :cond_18
goto :goto_82
.line 4
:cond_18
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/c;->X()J
move-result-wide v5
.line 5
invoke-interface {v2, v4}, Lcom/alibaba/fastjson/parser/c;->C(I)V
.line 6
sget-object p1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
const-string v1, "short overflow : "
if-eq p2, p1, :cond_65
if-ne p2, v0, :cond_28
goto :goto_65
.line 7
:cond_28
sget-object p1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
if-eq p2, p1, :cond_48
if-ne p2, p3, :cond_2f
goto :goto_48
:cond_2f
const-wide/32 p1, -0x80000000
cmp-long p3, v5, p1
if-ltz p3, :cond_43
const-wide/32 p1, 0x7fffffff
cmp-long p3, v5, p1
if-gtz p3, :cond_43
long-to-int p1, v5
.line 8
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
return-object p1
.line 9
:cond_43
invoke-static {v5, v6}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p1
return-object p1
:cond_48
:goto_48
const-wide/16 p1, 0x7f
cmp-long p3, v5, p1
if-gtz p3, :cond_5b
const-wide/16 p1, -0x80
cmp-long p3, v5, p1
if-ltz p3, :cond_5b
long-to-int p1, v5
int-to-byte p1, p1
.line 10
invoke-static {p1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object p1
return-object p1
.line 11
:cond_5b
new-instance p1, Lcom/alibaba/fastjson/d;
.line 12
invoke-static {v1, v5, v6}, Landroidx/biometric/h0;->c(Ljava/lang/String;J)Ljava/lang/String;
move-result-object p2
.line 13
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/d;-><init>(Ljava/lang/String;)V
throw p1
:cond_65
:goto_65
const-wide/16 p1, 0x7fff
cmp-long p3, v5, p1
if-gtz p3, :cond_78
const-wide/16 p1, -0x8000
cmp-long p3, v5, p1
if-ltz p3, :cond_78
long-to-int p1, v5
int-to-short p1, p1
.line 14
invoke-static {p1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object p1
return-object p1
.line 15
:cond_78
new-instance p1, Lcom/alibaba/fastjson/d;
.line 16
invoke-static {v1, v5, v6}, Landroidx/biometric/h0;->c(Ljava/lang/String;J)Ljava/lang/String;
move-result-object p2
.line 17
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/d;-><init>(Ljava/lang/String;)V
throw p1
.line 18
:cond_82
:goto_82
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/c;->V0()Ljava/lang/String;
move-result-object p1
.line 19
invoke-interface {v2, v4}, Lcom/alibaba/fastjson/parser/c;->C(I)V
.line 20
invoke-static {p1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide p1
invoke-static {p1, p2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p1
return-object p1
.line 21
:cond_92
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result v3
const/4 v5, 0x3
if-ne v3, v5, :cond_d8
.line 22
sget-object p1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
if-eq p2, p1, :cond_c8
if-ne p2, v1, :cond_a0
goto :goto_c8
.line 23
:cond_a0
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/c;->I0()Ljava/math/BigDecimal;
move-result-object p1
.line 24
invoke-interface {v2, v4}, Lcom/alibaba/fastjson/parser/c;->C(I)V
.line 25
sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
if-eq p2, v1, :cond_bf
if-ne p2, v0, :cond_ae
goto :goto_bf
.line 26
:cond_ae
sget-object v0, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
if-eq p2, v0, :cond_b6
if-ne p2, p3, :cond_b5
goto :goto_b6
:cond_b5
return-object p1
.line 27
:cond_b6
:goto_b6
invoke-virtual {p1}, Ljava/lang/Number;->byteValue()B
move-result p1
invoke-static {p1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte;
move-result-object p1
return-object p1
.line 28
:cond_bf
:goto_bf
invoke-virtual {p1}, Ljava/lang/Number;->shortValue()S
move-result p1
invoke-static {p1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short;
move-result-object p1
return-object p1
.line 29
:cond_c8
:goto_c8
invoke-interface {v2}, Lcom/alibaba/fastjson/parser/c;->V0()Ljava/lang/String;
move-result-object p1
.line 30
invoke-interface {v2, v4}, Lcom/alibaba/fastjson/parser/c;->C(I)V
.line 31
invoke-static {p1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D
move-result-wide p1
invoke-static {p1, p2}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double;
move-result-object p1
return-object p1
:cond_d8
const/4 v2, 0x0
.line 32
invoke-virtual {p1, v2}, Lcom/alibaba/fastjson/parser/a;->D(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
if-nez p1, :cond_e0
return-object v2
.line 33
:cond_e0
sget-object v2, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
if-eq p2, v2, :cond_104
if-ne p2, v1, :cond_e7
goto :goto_104
.line 34
:cond_e7
sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
if-eq p2, v1, :cond_ff
if-ne p2, v0, :cond_ee
goto :goto_ff
.line 35
:cond_ee
sget-object v0, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
if-eq p2, v0, :cond_fa
if-ne p2, p3, :cond_f5
goto :goto_fa
.line 36
:cond_f5
invoke-static {p1}, Lcom/alibaba/fastjson/util/j;->d(Ljava/lang/Object;)Ljava/math/BigDecimal;
move-result-object p1
return-object p1
.line 37
:cond_fa
:goto_fa
invoke-static {p1}, Lcom/alibaba/fastjson/util/j;->g(Ljava/lang/Object;)Ljava/lang/Byte;
move-result-object p1
return-object p1
.line 38
:cond_ff
:goto_ff
invoke-static {p1}, Lcom/alibaba/fastjson/util/j;->n(Ljava/lang/Object;)Ljava/lang/Short;
move-result-object p1
return-object p1
.line 39
:cond_104
:goto_104
invoke-static {p1}, Lcom/alibaba/fastjson/util/j;->i(Ljava/lang/Object;)Ljava/lang/Double;
move-result-object p1
return-object p1
.end method