c.smali
.class public final Lcom/alibaba/fastjson/parser/deserializer/c;
.super Lcom/alibaba/fastjson/parser/deserializer/k;
.source "SourceFile"
# instance fields
.field public final c:Ljava/lang/reflect/Type;
.field public d:I
.field public e:Lcom/alibaba/fastjson/parser/deserializer/r;
# direct methods
.method public constructor <init>(Ljava/lang/Class;Lcom/alibaba/fastjson/util/c;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/alibaba/fastjson/parser/i;",
"Ljava/lang/Class<",
"*>;",
"Lcom/alibaba/fastjson/util/c;",
")V"
}
.end annotation
.line 1
invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/deserializer/k;-><init>(Ljava/lang/Class;Lcom/alibaba/fastjson/util/c;)V
.line 2
iget-object p1, p2, Lcom/alibaba/fastjson/util/c;->f:Ljava/lang/reflect/Type;
.line 3
instance-of p2, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz p2, :cond_26
.line 4
check-cast p1, Ljava/lang/reflect/ParameterizedType;
invoke-interface {p1}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object p1
const/4 p2, 0x0
aget-object p1, p1, p2
.line 5
instance-of v0, p1, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_23
.line 6
move-object v0, p1
check-cast v0, Ljava/lang/reflect/WildcardType;
.line 7
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v0
.line 8
array-length v1, v0
const/4 v2, 0x1
if-ne v1, v2, :cond_23
.line 9
aget-object p1, v0, p2
.line 10
:cond_23
iput-object p1, p0, Lcom/alibaba/fastjson/parser/deserializer/c;->c:Ljava/lang/reflect/Type;
goto :goto_2a
.line 11
:cond_26
const-class p1, Ljava/lang/Object;
iput-object p1, p0, Lcom/alibaba/fastjson/parser/deserializer/c;->c:Ljava/lang/reflect/Type;
:goto_2a
return-void
.end method
# virtual methods
.method public final a()I
.registers 2
const/16 v0, 0xe
return v0
.end method
.method public final b(Lcom/alibaba/fastjson/parser/a;Ljava/lang/Object;Ljava/lang/reflect/Type;Ljava/util/Map;)V
.registers 22
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/alibaba/fastjson/parser/a;",
"Ljava/lang/Object;",
"Ljava/lang/reflect/Type;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/Object;",
">;)V"
}
.end annotation
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p2
move-object/from16 v3, p3
.line 1
iget-object v4, v1, Lcom/alibaba/fastjson/parser/a;->f:Lcom/alibaba/fastjson/parser/c;
invoke-interface {v4}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result v4
const/4 v5, 0x0
const/16 v6, 0x8
if-ne v4, v6, :cond_17
.line 2
invoke-virtual {v0, v2, v5}, Lcom/alibaba/fastjson/parser/deserializer/k;->c(Ljava/lang/Object;Ljava/lang/Object;)V
return-void
.line 3
:cond_17
new-instance v4, Ljava/util/ArrayList;
invoke-direct {v4}, Ljava/util/ArrayList;-><init>()V
.line 4
iget-object v6, v1, Lcom/alibaba/fastjson/parser/a;->g:Lcom/alibaba/fastjson/parser/h;
.line 5
iget-object v7, v0, Lcom/alibaba/fastjson/parser/deserializer/k;->a:Lcom/alibaba/fastjson/util/c;
iget-object v7, v7, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
invoke-virtual {v1, v6, v2, v7}, Lcom/alibaba/fastjson/parser/a;->U(Lcom/alibaba/fastjson/parser/h;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/h;
.line 6
iget-object v7, v0, Lcom/alibaba/fastjson/parser/deserializer/c;->c:Ljava/lang/reflect/Type;
.line 7
iget-object v8, v0, Lcom/alibaba/fastjson/parser/deserializer/c;->e:Lcom/alibaba/fastjson/parser/deserializer/r;
.line 8
instance-of v9, v3, Ljava/lang/reflect/ParameterizedType;
const/4 v10, 0x0
if-eqz v9, :cond_e8
.line 9
instance-of v9, v7, Ljava/lang/reflect/TypeVariable;
const/4 v11, -0x1
if-eqz v9, :cond_80
.line 10
move-object v9, v7
check-cast v9, Ljava/lang/reflect/TypeVariable;
.line 11
check-cast v3, Ljava/lang/reflect/ParameterizedType;
.line 12
invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v12
instance-of v12, v12, Ljava/lang/Class;
if-eqz v12, :cond_46
.line 13
invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v5
check-cast v5, Ljava/lang/Class;
:cond_46
if-eqz v5, :cond_68
.line 14
invoke-virtual {v5}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v12
array-length v12, v12
const/4 v13, 0x0
:goto_4e
if-ge v13, v12, :cond_68
.line 15
invoke-virtual {v5}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v14
aget-object v14, v14, v13
.line 16
invoke-interface {v14}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v14
invoke-interface {v9}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v15
invoke-virtual {v14, v15}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v14
if-eqz v14, :cond_65
goto :goto_69
:cond_65
add-int/lit8 v13, v13, 0x1
goto :goto_4e
:cond_68
const/4 v13, -0x1
:goto_69
if-eq v13, v11, :cond_e8
.line 17
invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v3
aget-object v7, v3, v13
.line 18
iget-object v3, v0, Lcom/alibaba/fastjson/parser/deserializer/c;->c:Ljava/lang/reflect/Type;
invoke-virtual {v7, v3}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v3
if-nez v3, :cond_e8
.line 19
iget-object v3, v1, Lcom/alibaba/fastjson/parser/a;->c:Lcom/alibaba/fastjson/parser/i;
.line 20
invoke-virtual {v3, v7}, Lcom/alibaba/fastjson/parser/i;->c(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/r;
move-result-object v8
goto :goto_e8
.line 21
:cond_80
instance-of v9, v7, Ljava/lang/reflect/ParameterizedType;
if-eqz v9, :cond_e8
.line 22
move-object v9, v7
check-cast v9, Ljava/lang/reflect/ParameterizedType;
.line 23
invoke-interface {v9}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v12
.line 24
array-length v13, v12
const/4 v14, 0x1
if-ne v13, v14, :cond_e8
aget-object v13, v12, v10
instance-of v13, v13, Ljava/lang/reflect/TypeVariable;
if-eqz v13, :cond_e8
.line 25
aget-object v13, v12, v10
check-cast v13, Ljava/lang/reflect/TypeVariable;
.line 26
check-cast v3, Ljava/lang/reflect/ParameterizedType;
.line 27
invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v14
instance-of v14, v14, Ljava/lang/Class;
if-eqz v14, :cond_a9
.line 28
invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v5
check-cast v5, Ljava/lang/Class;
:cond_a9
if-eqz v5, :cond_ce
.line 29
invoke-virtual {v5}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v14
array-length v14, v14
const/4 v15, 0x0
:goto_b1
if-ge v15, v14, :cond_ce
.line 30
invoke-virtual {v5}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v16
aget-object v16, v16, v15
.line 31
invoke-interface/range {v16 .. v16}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v10
invoke-interface {v13}, Ljava/lang/reflect/TypeVariable;->getName()Ljava/lang/String;
move-result-object v11
invoke-virtual {v10, v11}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_c9
const/4 v5, -0x1
goto :goto_d0
:cond_c9
add-int/lit8 v15, v15, 0x1
const/4 v10, 0x0
const/4 v11, -0x1
goto :goto_b1
:cond_ce
const/4 v5, -0x1
const/4 v15, -0x1
:goto_d0
if-eq v15, v5, :cond_e8
.line 32
invoke-interface {v3}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v3
aget-object v3, v3, v15
const/4 v5, 0x0
aput-object v3, v12, v5
.line 33
new-instance v7, Lcom/alibaba/fastjson/util/h;
invoke-interface {v9}, Ljava/lang/reflect/ParameterizedType;->getOwnerType()Ljava/lang/reflect/Type;
move-result-object v3
invoke-interface {v9}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v5
invoke-direct {v7, v12, v3, v5}, Lcom/alibaba/fastjson/util/h;-><init>([Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;Ljava/lang/reflect/Type;)V
.line 34
:cond_e8
:goto_e8
iget-object v3, v1, Lcom/alibaba/fastjson/parser/a;->f:Lcom/alibaba/fastjson/parser/c;
.line 35
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result v5
const/16 v9, 0xe
if-ne v5, v9, :cond_145
if-nez v8, :cond_102
.line 36
iget-object v5, v1, Lcom/alibaba/fastjson/parser/a;->c:Lcom/alibaba/fastjson/parser/i;
.line 37
invoke-virtual {v5, v7}, Lcom/alibaba/fastjson/parser/i;->c(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/r;
move-result-object v8
iput-object v8, v0, Lcom/alibaba/fastjson/parser/deserializer/c;->e:Lcom/alibaba/fastjson/parser/deserializer/r;
.line 38
invoke-interface {v8}, Lcom/alibaba/fastjson/parser/deserializer/r;->b()I
move-result v5
iput v5, v0, Lcom/alibaba/fastjson/parser/deserializer/c;->d:I
:cond_102
move-object v5, v8
.line 39
iget v8, v0, Lcom/alibaba/fastjson/parser/deserializer/c;->d:I
invoke-interface {v3, v8}, Lcom/alibaba/fastjson/parser/c;->C(I)V
const/4 v10, 0x0
.line 40
:goto_109
sget-object v8, Lcom/alibaba/fastjson/parser/b;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/b;
invoke-interface {v3, v8}, Lcom/alibaba/fastjson/parser/c;->h(Lcom/alibaba/fastjson/parser/b;)Z
move-result v8
const/16 v9, 0x10
if-eqz v8, :cond_11d
.line 41
:goto_113
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result v8
if-ne v8, v9, :cond_11d
.line 42
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/c;->o()V
goto :goto_113
.line 43
:cond_11d
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result v8
const/16 v11, 0xf
if-ne v8, v11, :cond_129
.line 44
invoke-interface {v3, v9}, Lcom/alibaba/fastjson/parser/c;->C(I)V
goto :goto_15e
.line 45
:cond_129
invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v8
invoke-interface {v5, v1, v7, v8}, Lcom/alibaba/fastjson/parser/deserializer/r;->c(Lcom/alibaba/fastjson/parser/a;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v8
.line 46
invoke-virtual {v4, v8}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 47
invoke-virtual {v1, v4}, Lcom/alibaba/fastjson/parser/a;->l(Ljava/util/Collection;)V
.line 48
invoke-interface {v3}, Lcom/alibaba/fastjson/parser/c;->M0()I
move-result v8
if-ne v8, v9, :cond_142
.line 49
iget v8, v0, Lcom/alibaba/fastjson/parser/deserializer/c;->d:I
invoke-interface {v3, v8}, Lcom/alibaba/fastjson/parser/c;->C(I)V
:cond_142
add-int/lit8 v10, v10, 0x1
goto :goto_109
:cond_145
if-nez v8, :cond_14f
.line 50
iget-object v3, v1, Lcom/alibaba/fastjson/parser/a;->c:Lcom/alibaba/fastjson/parser/i;
.line 51
invoke-virtual {v3, v7}, Lcom/alibaba/fastjson/parser/i;->c(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/r;
move-result-object v8
iput-object v8, v0, Lcom/alibaba/fastjson/parser/deserializer/c;->e:Lcom/alibaba/fastjson/parser/deserializer/r;
:cond_14f
const/4 v3, 0x0
.line 52
invoke-static {v3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-interface {v8, v1, v7, v3}, Lcom/alibaba/fastjson/parser/deserializer/r;->c(Lcom/alibaba/fastjson/parser/a;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
.line 53
invoke-virtual {v4, v3}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 54
invoke-virtual {v1, v4}, Lcom/alibaba/fastjson/parser/a;->l(Ljava/util/Collection;)V
.line 55
:goto_15e
invoke-virtual {v1, v6}, Lcom/alibaba/fastjson/parser/a;->X(Lcom/alibaba/fastjson/parser/h;)V
if-nez v2, :cond_16d
.line 56
iget-object v1, v0, Lcom/alibaba/fastjson/parser/deserializer/k;->a:Lcom/alibaba/fastjson/util/c;
iget-object v1, v1, Lcom/alibaba/fastjson/util/c;->a:Ljava/lang/String;
move-object/from16 v2, p4
invoke-interface {v2, v1, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_170
.line 57
:cond_16d
invoke-virtual {v0, v2, v4}, Lcom/alibaba/fastjson/parser/deserializer/k;->c(Ljava/lang/Object;Ljava/lang/Object;)V
:goto_170
return-void
.end method