ParserConfig.smali
.class public Lcom/alibaba/fastjson/parser/ParserConfig;
.super Ljava/lang/Object;
.source "ParserConfig.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/alibaba/fastjson/parser/ParserConfig$AutoTypeCheckHandler;
}
.end annotation
# static fields
.field public static final AUTOTYPE_ACCEPT:Ljava/lang/String; = "fastjson.parser.autoTypeAccept"
.field public static final AUTOTYPE_SUPPORT_PROPERTY:Ljava/lang/String; = "fastjson.parser.autoTypeSupport"
.field public static final AUTO_SUPPORT:Z
.field private static final AUTO_TYPE_ACCEPT_LIST:[Ljava/lang/String;
.field public static final DENYS:[Ljava/lang/String;
.field public static final DENYS_INTERNAL:[Ljava/lang/String;
.field public static final DENY_PROPERTY:Ljava/lang/String; = "fastjson.parser.deny"
.field public static final DENY_PROPERTY_INTERNAL:Ljava/lang/String; = "fastjson.parser.deny.internal"
.field private static final INTERNAL_WHITELIST_HASHCODES:[J
.field public static final SAFE_MODE:Z
.field public static final SAFE_MODE_PROPERTY:Ljava/lang/String; = "fastjson.parser.safeMode"
.field private static awtError:Z
.field public static global:Lcom/alibaba/fastjson/parser/ParserConfig;
.field private static guavaError:Z
.field private static isPrimitiveFuncation:Lcom/alibaba/fastjson/util/Function;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/alibaba/fastjson/util/Function<",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/Boolean;",
">;"
}
.end annotation
.end field
.field private static jdk8Error:Z
.field private static jodaError:Z
# instance fields
.field private acceptHashCodes:[J
.field private asmEnable:Z
.field protected asmFactory:Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;
.field private volatile autoTypeCheckHandlers:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/ParserConfig$AutoTypeCheckHandler;",
">;"
}
.end annotation
.end field
.field private autoTypeSupport:Z
.field public compatibleWithJavaBean:Z
.field protected defaultClassLoader:Ljava/lang/ClassLoader;
.field private denyHashCodes:[J
.field private final deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/alibaba/fastjson/util/IdentityHashMap<",
"Ljava/lang/reflect/Type;",
"Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;",
">;"
}
.end annotation
.end field
.field public final fieldBased:Z
.field private final initDeserializersWithJavaSql:Ljava/util/concurrent/Callable;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/Callable<",
"Ljava/lang/Void;",
">;"
}
.end annotation
.end field
.field private internalDenyHashCodes:[J
.field private jacksonCompatible:Z
.field private final mixInDeserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/alibaba/fastjson/util/IdentityHashMap<",
"Ljava/lang/reflect/Type;",
"Lcom/alibaba/fastjson/util/IdentityHashMap<",
"Ljava/lang/reflect/Type;",
"Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;",
">;>;"
}
.end annotation
.end field
.field private modules:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/alibaba/fastjson/spi/Module;",
">;"
}
.end annotation
.end field
.field public propertyNamingStrategy:Lcom/alibaba/fastjson/PropertyNamingStrategy;
.field private safeMode:Z
.field public final symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
.field private final typeMapping:Ljava/util/concurrent/ConcurrentMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/ConcurrentMap<",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"*>;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 2
const-string v0, "fastjson.parser.deny.internal"
.line 85
invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 86
invoke-static {v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->splitItemsFormProperty(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->DENYS_INTERNAL:[Ljava/lang/String;
const-string v0, "fastjson.parser.deny"
.line 89
invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 90
invoke-static {v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->splitItemsFormProperty(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->DENYS:[Ljava/lang/String;
const-string v0, "fastjson.parser.autoTypeSupport"
.line 93
invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
const-string v1, "true"
.line 94
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
sput-boolean v0, Lcom/alibaba/fastjson/parser/ParserConfig;->AUTO_SUPPORT:Z
const-string v0, "fastjson.parser.safeMode"
.line 97
invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 98
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
sput-boolean v0, Lcom/alibaba/fastjson/parser/ParserConfig;->SAFE_MODE:Z
const-string v0, "fastjson.parser.autoTypeAccept"
.line 101
invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->getStringProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 102
invoke-static {v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->splitItemsFormProperty(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
if-nez v0, :cond_41
new-array v0, v1, [Ljava/lang/String;
.line 106
:cond_41
sput-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->AUTO_TYPE_ACCEPT_LIST:[Ljava/lang/String;
const/4 v0, 0x4
new-array v0, v0, [J
.line 109
fill-array-data v0, :array_62
sput-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->INTERNAL_WHITELIST_HASHCODES:[J
.line 120
new-instance v0, Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-direct {v0}, Lcom/alibaba/fastjson/parser/ParserConfig;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->global:Lcom/alibaba/fastjson/parser/ParserConfig;
.line 136
sput-boolean v1, Lcom/alibaba/fastjson/parser/ParserConfig;->awtError:Z
.line 137
sput-boolean v1, Lcom/alibaba/fastjson/parser/ParserConfig;->jdk8Error:Z
.line 138
sput-boolean v1, Lcom/alibaba/fastjson/parser/ParserConfig;->jodaError:Z
.line 139
sput-boolean v1, Lcom/alibaba/fastjson/parser/ParserConfig;->guavaError:Z
.line 1146
new-instance v0, Lcom/alibaba/fastjson/parser/ParserConfig$2;
invoke-direct {v0}, Lcom/alibaba/fastjson/parser/ParserConfig$2;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->isPrimitiveFuncation:Lcom/alibaba/fastjson/util/Function;
return-void
:array_62
.array-data 8
-0x60d1df049fb65c8fL
-0x575556d6bb90031cL # -8.660931078614971E-113
0xd45d6f8c9017faL
0x64dc636f343516dcL # 7.18982986180002E177
.end array-data
.end method
.method public constructor <init>()V
.registers 2
const/4 v0, 0x0
.line 338
invoke-direct {p0, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;-><init>(Z)V
return-void
.end method
.method public constructor <init>(Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;)V
.registers 4
const/4 v0, 0x0
const/4 v1, 0x0
.line 350
invoke-direct {p0, p1, v0, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;-><init>(Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;Ljava/lang/ClassLoader;Z)V
return-void
.end method
.method private constructor <init>(Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;Ljava/lang/ClassLoader;Z)V
.registers 9
.line 353
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 122
new-instance v0, Lcom/alibaba/fastjson/util/IdentityHashMap;
invoke-direct {v0}, Lcom/alibaba/fastjson/util/IdentityHashMap;-><init>()V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
.line 123
new-instance v0, Lcom/alibaba/fastjson/util/IdentityHashMap;
const/16 v1, 0x10
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/util/IdentityHashMap;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->mixInDeserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
.line 124
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
const/high16 v2, 0x3f400000 # 0.75f
const/4 v3, 0x1
invoke-direct {v0, v1, v2, v3}, Ljava/util/concurrent/ConcurrentHashMap;-><init>(IFI)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->typeMapping:Ljava/util/concurrent/ConcurrentMap;
.line 126
sget-boolean v0, Lcom/alibaba/fastjson/util/ASMUtils;->IS_ANDROID:Z
xor-int/2addr v0, v3
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->asmEnable:Z
.line 128
new-instance v0, Lcom/alibaba/fastjson/parser/SymbolTable;
const/16 v1, 0x1000
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/parser/SymbolTable;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
.line 141
sget-boolean v0, Lcom/alibaba/fastjson/parser/ParserConfig;->AUTO_SUPPORT:Z
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeSupport:Z
const/4 v0, 0x0
.line 148
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->jacksonCompatible:Z
.line 150
sget-boolean v1, Lcom/alibaba/fastjson/util/TypeUtils;->compatibleWithJavaBean:Z
iput-boolean v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->compatibleWithJavaBean:Z
.line 151
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
iput-object v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->modules:Ljava/util/List;
.line 153
sget-boolean v1, Lcom/alibaba/fastjson/parser/ParserConfig;->SAFE_MODE:Z
iput-boolean v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->safeMode:Z
const/16 v1, 0xa9
new-array v1, v1, [J
.line 156
fill-array-data v1, :array_a2
iput-object v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->denyHashCodes:[J
.line 328
sget-object v1, Lcom/alibaba/fastjson/parser/ParserConfig;->AUTO_TYPE_ACCEPT_LIST:[Ljava/lang/String;
array-length v1, v1
new-array v1, v1, [J
move v2, v0
.line 329
:goto_50
sget-object v3, Lcom/alibaba/fastjson/parser/ParserConfig;->AUTO_TYPE_ACCEPT_LIST:[Ljava/lang/String;
array-length v4, v3
if-ge v2, v4, :cond_60
.line 330
aget-object v3, v3, v2
invoke-static {v3}, Lcom/alibaba/fastjson/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J
move-result-wide v3
aput-wide v3, v1, v2
add-int/lit8 v2, v2, 0x1
goto :goto_50
.line 333
:cond_60
invoke-static {v1}, Ljava/util/Arrays;->sort([J)V
.line 334
iput-object v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->acceptHashCodes:[J
.line 385
new-instance v1, Lcom/alibaba/fastjson/parser/ParserConfig$1;
invoke-direct {v1, p0}, Lcom/alibaba/fastjson/parser/ParserConfig$1;-><init>(Lcom/alibaba/fastjson/parser/ParserConfig;)V
iput-object v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->initDeserializersWithJavaSql:Ljava/util/concurrent/Callable;
.line 354
iput-boolean p3, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->fieldBased:Z
if-nez p1, :cond_88
.line 355
sget-boolean p3, Lcom/alibaba/fastjson/util/ASMUtils;->IS_ANDROID:Z
if-nez p3, :cond_88
if-nez p2, :cond_82
.line 358
:try_start_76
new-instance p2, Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;
new-instance p3, Lcom/alibaba/fastjson/util/ASMClassLoader;
invoke-direct {p3}, Lcom/alibaba/fastjson/util/ASMClassLoader;-><init>()V
invoke-direct {p2, p3}, Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;-><init>(Ljava/lang/ClassLoader;)V
move-object p1, p2
goto :goto_88
.line 360
:cond_82
new-instance p3, Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;
invoke-direct {p3, p2}, Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;-><init>(Ljava/lang/ClassLoader;)V
:try_end_87
.catch Ljava/lang/ExceptionInInitializerError; {:try_start_76 .. :try_end_87} :catch_88
.catch Ljava/security/AccessControlException; {:try_start_76 .. :try_end_87} :catch_88
.catch Ljava/lang/NoClassDefFoundError; {:try_start_76 .. :try_end_87} :catch_88
move-object p1, p3
.line 371
:catch_88
:cond_88
:goto_88
iput-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->asmFactory:Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;
if-nez p1, :cond_8e
.line 374
iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->asmEnable:Z
.line 377
:cond_8e
invoke-direct {p0}, Lcom/alibaba/fastjson/parser/ParserConfig;->initDeserializers()V
.line 379
sget-object p1, Lcom/alibaba/fastjson/parser/ParserConfig;->DENYS:[Ljava/lang/String;
invoke-direct {p0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->addItemsToDeny([Ljava/lang/String;)V
.line 380
sget-object p1, Lcom/alibaba/fastjson/parser/ParserConfig;->DENYS_INTERNAL:[Ljava/lang/String;
invoke-direct {p0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->addItemsToDeny0([Ljava/lang/String;)V
.line 381
sget-object p1, Lcom/alibaba/fastjson/parser/ParserConfig;->AUTO_TYPE_ACCEPT_LIST:[Ljava/lang/String;
invoke-direct {p0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->addItemsToAccept([Ljava/lang/String;)V
return-void
nop
:array_a2
.array-data 8
-0x7f2f38f433d015feL # -9.556794763479643E-305
-0x797c7af6a5dd8da1L # -2.752875440315231E-277
-0x7903d40641508511L # -5.085553800937495E-275
-0x780ad5e4f815cc5aL
-0x778d0d602f4f4859L # -5.73854165649321E-268
-0x7455117064088059L # -1.836708762919172E-252
-0x71522bf34d56bbbdL
-0x708a0605f20fc080L # -3.455901468587826E-234
-0x6e8d5ac0ea86cf51L
-0x6dedd28ef1c9b048L # -1.257180119856368E-221
-0x6be79918c4100b37L # -7.248495544345653E-212
-0x6bcfa3d9a7f08c3bL # -1.943861383644949E-211
-0x6bc886d7ce2082c1L
-0x5edc59d06ce874e0L # -4.802155510082355E-149
-0x57a77d31efbb3bb0L
-0x55c250024ef3b6c9L
-0x555619483e1e3959L
-0x5555f7d9b785c8c9L
-0x547da9d0ac191b71L # -4.191714158844199E-99
-0x539d9d0ad36755c7L # -6.886391444241167E-95
-0x526c85bb67ce1760L # -3.824696155682281E-89
-0x51af25e0529f5f6aL # -1.3554199460470375E-85
-0x500900dcc771dda6L # -1.2412673941092185E-77
-0x5000b36a4665ccb3L # -1.6894051133204177E-77
-0x4bf0cbe38b9136b1L # -6.213767217225293E-58
-0x4817128a80a2ec5eL # -2.2892361373052172E-39
-0x467494ac696cd017L # -1.6898413909066546E-31
-0x4322623ed8990f32L # -1.644030941651994E-15
-0x431f211cb18d9b67L # -1.8730190643927076E-15
-0x41b0ec1695986930L # -1.4471719223103779E-8
-0x41458d04e3345bdaL # -1.5764918430089148E-6
-0x3ff41e21450d7f75L # -3.485288105512216
-0x3ef795051cd19da8L # -200031.3609283145
-0x3d99b2f6a71301b4L # -7.662539098639468E11
-0x3be00836378383fbL # -1.4742602222991634E20
-0x399b4c9c4535faf6L # -1.3120653062289765E31
-0x38a661401c18dbfaL # -5.3210898116926836E35
-0x372b61a9fe199e57L # -7.184498624325357E42
-0x370fb4c5d76f66cbL # -2.271032093241071E43
-0x369c96af7d028d72L # -3.463106763999075E45
-0x340d631b7bdddcdbL # -7.302176725335867E57
-0x2e10320b4cce92ccL # -4.9428513655242083E86
-0x2ab46e33884dc613L # -7.718587662525667E102
-0x2a6116e0f4f615ffL # -2.769276834562512E104
-0x299097546d18010bL # -2.305158249887012E108
-0x2735c2a6a167d454L # -5.293540616952125E119
-0x232729ea59bb61c2L # -1.8485208306343955E139
-0x21dc5f7f6574642aL # -3.063522061072579E145
-0x2103df70dc82befcL # -3.5965336067206575E149
-0x20d2200cef324c8bL # -3.0559968239287952E150
-0x1f651b9fb7bda7d1L # -2.3076098125244163E157
-0x1e6e67fb2a40b971L # -9.894137060283861E161
-0x1d14c5381a93b982L # -3.211360471030518E168
-0x19fc295ae05296d5L # -2.6342395696172524E183
-0x18fb02e6fad4d5ccL # -1.826468061592473E188
-0x16e7b41aa4e269d6L # -1.816185970555075E198
-0x160df452da09f7f9L # -2.2100835374064227E202
-0x12ec9ac34ba3b413L # -2.674464980159689E217
-0xd67c2f662d64b89L # -1.0343819992267985E244
-0xc8fd5b5ab6f4718L
-0xb8b1bbae70d98caL # -9.573036758577548E252
-0xb26c0b04c1c266fL # -7.404086096916242E254
-0xa28823071b28e1aL # -4.514878552434115E259
-0x93fcbf18c5c9597L
-0x816918b205a7244L
-0x388c51df37d896fL
-0x30c1879bb467428L # -7.945197787260532E293
-0x2a4039effa928e0L # -7.14947811210233E295
-0x5ea40fde0e1c84L
-0x22e57f0e12cbfbL
0x10e067cd55c5e5L
0x761619136cc13eL
0x22baa234c5bfb8aL
0x3085068cb7201b8L
0x45b11bc78a3aba3L
0x55cfca0f2281c07L
0xa555c74fe3a5155L
0xb6e292fa5955adeL
0xbef8514d0b79293L
0xee6511b66fd5ef0L # 6.854342740564376E-237
0x100150a253996624L # 1.394104277479804E-231
0x10b2bdca849d9b3eL # 3.09032861507223E-228
0x10dbc48446e0dae5L
0x119b5b1f10210afcL
0x144277b467723158L # 4.388573993986807E-211
0x14db2e6fead04af0L # 3.307156557815155E-208
0x154b6cb22d294cfaL # 4.271035506616844E-206
0x17924cca5227622aL
0x193b2697eaaed41aL # 3.9000001662652114E-187
0x1cd6f11c6a358bb7L # 9.498405308272427E-170
0x1e0a8c3358ff3daeL # 5.762601583556236E-164
0x24652ce717e713bbL
0x24d2f6048fef4e49L
0x24ec99d5e7dc5571L # 8.058828264835688E-131
0x25e962f1c28f71a2L
0x275d0732b877af29L
0x28ac82e44e933606L
0x2a71ce2cc40a710cL # 3.105364083941061E-104
0x2ad1ce3a112f015dL
0x2adfefbbfe29d931L
0x2b3a37467a344cdfL
0x2b6dd8b3229d6837L # 1.7057077092413725E-99
0x2d308dbbc851b0d8L # 5.078962391870398E-91
0x2fe950d3ea52ae0dL # 6.832216944281275E-78
0x313bb4abd8d4554cL # 1.56808971921097E-71
0x327c8ed7c8706905L # 1.6948389662237084E-65
0x332f0b5369a18310L
0x339a3e0b6beebee9L # 4.0826654570968825E-60
0x33c64b921f523f2fL # 2.77486720533494E-59
0x33e7f3e02571b153L # 1.1924611050770566E-58
0x34a81ee78429fdf1L # 4.918595094295287E-55
0x37317698dcfce894L # 7.830801102106149E-43
0x378307cb0111e878L # 2.730734411398275E-41
0x3826f4b2380c8b9bL # 3.373058177088523E-38
0x398f942e01920cf0L # 1.9461954727645544E-31
0x3a31412dbb05c7ffL # 2.1778372103247874E-28
0x3a7ee0635eb2bc33L # 6.235462802057997E-27
0x3adba40367f73264L # 3.5724737671988184E-25
0x3b0b51ecbf6db221L # 2.8248237289442712E-24
0x3bf14094a524f0e2L # 5.845295813183875E-20
0x42d11a560fc9fba9L # 7.521924278884664E13
0x43320dc9d2ae0892L # 5.08171005500021E15
0x440e89208f445fb9L # 7.041042216469549E19
0x46c808a4b5841f57L # 9.749252615377375E32
0x470fd3a18bb39414L # 2.065669875132854E34
0x49312bdafb0077d9L # 3.829330118647328E44
0x4a3797b30328202cL # 3.448058737338662E49
0x4ba3e254e758d70dL # 2.4377845509161763E56
0x4bf881e49d37f530L # 9.614713083096315E57
0x4cf54eec05e3e818L # 5.478576021141778E62
0x4da972745feb30c1L # 1.339945589251118E66
0x4ef08c90ff16c675L # 1.8274816638330285E72
0x4fd10ddc6d13821fL # 3.085523505057036E76
0x521b4f573376df4aL # 3.3954649887443486E87
0x527db6b46ce3bcbcL # 2.3643694017797754E89
0x535e552d6f9700c1L # 3.954486474370437E93
0x54855e265fe1dad5L # 1.4605211590140444E99
0x5728504a6d454ffcL # 7.309005913296069E111
0x599b5c1213a099acL # 4.521565120980506E123
0x5a5bd85c072e5efeL
0x5ab0cb3071ab40d1L # 7.275532043244496E128
0x5b6149820275ea42L
0x5d74d3e5b9370476L # 1.5873759122766088E142
0x5d92e6ddde40ed84L # 5.762376793011253E142
0x5e61093ef8cdddbbL # 4.2545979149900575E146
0x5f215622fb630753L # 1.773407570959078E150
0x61c5bdd721385107L # 9.781342160839794E162
0x62db241274397c34L
0x636ecca2a131b235L # 9.29884914075952E170
0x63a220e60a17c7b9L # 8.757288450874107E171
0x647ab0224e149ebeL # 1.0561215288164044E176
0x65f81b84c1d920cdL # 1.6005507777082922E183
0x665c53c311193973L # 1.2036519694555594E185
0x6749835432e0f0d2L
0x69b6e0175084b377L # 1.750995289311963E201
0x6a47501ebb2afdb2L # 9.136601149026956E203
0x6fcabf6fa54cafffL # 3.244253068846464E230
0x6fe92d83fc0a4628L # 1.2215307041274365E231
0x746bd4a53ec195fbL # 6.376313675246868E252
0x74b50bb9260e31ffL # 1.5429848812177576E254
0x75cc60f5871d0fd3L # 2.7270901325332595E259
0x767a586a5107feefL # 5.184902282980218E262
0x78e5935826671397L # 2.3343620850209894E274
0x793addded7a967f5L # 9.301865880350898E275
0x7aa7ee3627a19cf3L # 6.950210684357695E282
0x7afa070241b8cc4bL # 2.4189469652688762E284
0x7ed9311d28bf1a65L # 1.0797314149657436E303
0x7ed9481d28bf417aL # 1.0835821490243428E303
0x7ee6c477da20bbe3L # 1.951641816604592E303
.end array-data
.end method
.method public constructor <init>(Ljava/lang/ClassLoader;)V
.registers 4
const/4 v0, 0x0
const/4 v1, 0x0
.line 346
invoke-direct {p0, v0, p1, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;-><init>(Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;Ljava/lang/ClassLoader;Z)V
return-void
.end method
.method public constructor <init>(Z)V
.registers 3
const/4 v0, 0x0
.line 342
invoke-direct {p0, v0, v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;-><init>(Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;Ljava/lang/ClassLoader;Z)V
return-void
.end method
.method static synthetic access$000(Lcom/alibaba/fastjson/parser/ParserConfig;)Lcom/alibaba/fastjson/util/IdentityHashMap;
.registers 1
.line 68
iget-object p0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
return-object p0
.end method
.method private addItemsToAccept([Ljava/lang/String;)V
.registers 4
if-nez p1, :cond_3
return-void
:cond_3
const/4 v0, 0x0
.line 530
:goto_4
array-length v1, p1
if-ge v0, v1, :cond_f
.line 531
aget-object v1, p1, v0
.line 532
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;->addAccept(Ljava/lang/String;)V
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_f
return-void
.end method
.method private addItemsToDeny([Ljava/lang/String;)V
.registers 4
if-nez p1, :cond_3
return-void
:cond_3
const/4 v0, 0x0
.line 519
:goto_4
array-length v1, p1
if-ge v0, v1, :cond_f
.line 520
aget-object v1, p1, v0
.line 521
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;->addDeny(Ljava/lang/String;)V
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_f
return-void
.end method
.method private addItemsToDeny0([Ljava/lang/String;)V
.registers 4
if-nez p1, :cond_3
return-void
:cond_3
const/4 v0, 0x0
.line 508
:goto_4
array-length v1, p1
if-ge v0, v1, :cond_f
.line 509
aget-object v1, p1, v0
.line 510
invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;->addDenyInternal(Ljava/lang/String;)V
add-int/lit8 v0, v0, 0x1
goto :goto_4
:cond_f
return-void
.end method
.method private static getEnumCreator(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
.registers 7
.line 888
invoke-virtual {p0}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object p0
.line 890
array-length v0, p0
const/4 v1, 0x0
:goto_6
if-ge v1, v0, :cond_30
aget-object v2, p0, v1
.line 891
invoke-virtual {v2}, Ljava/lang/reflect/Method;->getModifiers()I
move-result v3
invoke-static {v3}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v3
if-eqz v3, :cond_2d
.line 892
invoke-virtual {v2}, Ljava/lang/reflect/Method;->getReturnType()Ljava/lang/Class;
move-result-object v3
if-ne v3, p1, :cond_2d
.line 893
invoke-virtual {v2}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v3
array-length v3, v3
const/4 v4, 0x1
if-ne v3, v4, :cond_2d
.line 895
const-class v3, Lcom/alibaba/fastjson/annotation/JSONCreator;
invoke-virtual {v2, v3}, Ljava/lang/reflect/Method;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v3
check-cast v3, Lcom/alibaba/fastjson/annotation/JSONCreator;
if-eqz v3, :cond_2d
goto :goto_31
:cond_2d
add-int/lit8 v1, v1, 0x1
goto :goto_6
:cond_30
const/4 v2, 0x0
:goto_31
return-object v2
.end method
.method public static getFieldFromCache(Ljava/lang/String;Ljava/util/Map;)Ljava/lang/reflect/Field;
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/reflect/Field;",
">;)",
"Ljava/lang/reflect/Field;"
}
.end annotation
.line 1199
invoke-interface {p1, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/reflect/Field;
if-nez v0, :cond_1f
.line 1202
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "_"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {p1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/reflect/Field;
:cond_1f
if-nez v0, :cond_38
.line 1206
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "m_"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-interface {p1, v0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/reflect/Field;
:cond_38
if-nez v0, :cond_9c
const/4 v1, 0x0
.line 1210
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
const/16 v3, 0x7a
const/16 v4, 0x61
if-lt v2, v4, :cond_5d
if-gt v2, v3, :cond_5d
.line 1212
invoke-virtual {p0}, Ljava/lang/String;->toCharArray()[C
move-result-object v0
.line 1213
aget-char v5, v0, v1
add-int/lit8 v5, v5, -0x20
int-to-char v5, v5
aput-char v5, v0, v1
.line 1214
new-instance v1, Ljava/lang/String;
invoke-direct {v1, v0}, Ljava/lang/String;-><init>([C)V
.line 1215
invoke-interface {p1, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/reflect/Field;
.line 1218
:cond_5d
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v1
const/4 v5, 0x2
if-le v1, v5, :cond_9c
const/4 v1, 0x1
.line 1219
invoke-virtual {p0, v1}, Ljava/lang/String;->charAt(I)C
move-result v1
if-lt v2, v4, :cond_9c
if-gt v2, v3, :cond_9c
const/16 v2, 0x41
if-lt v1, v2, :cond_9c
const/16 v2, 0x5a
if-gt v1, v2, :cond_9c
.line 1222
invoke-interface {p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object p1
invoke-interface {p1}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object p1
:cond_7d
invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_9c
invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/util/Map$Entry;
.line 1223
invoke-interface {v1}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-virtual {p0, v2}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_7d
.line 1224
invoke-interface {v1}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object p0
move-object v0, p0
check-cast v0, Ljava/lang/reflect/Field;
:cond_9c
return-object v0
.end method
.method public static getGlobalInstance()Lcom/alibaba/fastjson/parser/ParserConfig;
.registers 1
.line 118
sget-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->global:Lcom/alibaba/fastjson/parser/ParserConfig;
return-object v0
.end method
.method private initDeserializers()V
.registers 4
.line 396
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/text/SimpleDateFormat;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 397
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/Calendar;
sget-object v2, Lcom/alibaba/fastjson/serializer/CalendarCodec;->instance:Lcom/alibaba/fastjson/serializer/CalendarCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 398
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljavax/xml/datatype/XMLGregorianCalendar;
sget-object v2, Lcom/alibaba/fastjson/serializer/CalendarCodec;->instance:Lcom/alibaba/fastjson/serializer/CalendarCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 400
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Lcom/alibaba/fastjson/JSONObject;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 401
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Lcom/alibaba/fastjson/JSONArray;
sget-object v2, Lcom/alibaba/fastjson/serializer/CollectionCodec;->instance:Lcom/alibaba/fastjson/serializer/CollectionCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 403
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/Map;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 404
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/HashMap;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 405
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/LinkedHashMap;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 406
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/TreeMap;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 407
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/concurrent/ConcurrentMap;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 408
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/concurrent/ConcurrentHashMap;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 410
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/Collection;
sget-object v2, Lcom/alibaba/fastjson/serializer/CollectionCodec;->instance:Lcom/alibaba/fastjson/serializer/CollectionCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 411
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/List;
sget-object v2, Lcom/alibaba/fastjson/serializer/CollectionCodec;->instance:Lcom/alibaba/fastjson/serializer/CollectionCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 412
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/ArrayList;
sget-object v2, Lcom/alibaba/fastjson/serializer/CollectionCodec;->instance:Lcom/alibaba/fastjson/serializer/CollectionCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 414
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Object;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 415
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/String;
sget-object v2, Lcom/alibaba/fastjson/serializer/StringCodec;->instance:Lcom/alibaba/fastjson/serializer/StringCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 416
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/StringBuffer;
sget-object v2, Lcom/alibaba/fastjson/serializer/StringCodec;->instance:Lcom/alibaba/fastjson/serializer/StringCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 417
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/StringBuilder;
sget-object v2, Lcom/alibaba/fastjson/serializer/StringCodec;->instance:Lcom/alibaba/fastjson/serializer/StringCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 418
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
sget-object v1, Ljava/lang/Character;->TYPE:Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/serializer/CharacterCodec;->instance:Lcom/alibaba/fastjson/serializer/CharacterCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 419
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Character;
sget-object v2, Lcom/alibaba/fastjson/serializer/CharacterCodec;->instance:Lcom/alibaba/fastjson/serializer/CharacterCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 420
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
sget-object v1, Ljava/lang/Byte;->TYPE:Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 421
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Byte;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 422
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
sget-object v1, Ljava/lang/Short;->TYPE:Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 423
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Short;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 424
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 425
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Integer;
sget-object v2, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 426
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
sget-object v1, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/serializer/LongCodec;->instance:Lcom/alibaba/fastjson/serializer/LongCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 427
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Long;
sget-object v2, Lcom/alibaba/fastjson/serializer/LongCodec;->instance:Lcom/alibaba/fastjson/serializer/LongCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 428
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/math/BigInteger;
sget-object v2, Lcom/alibaba/fastjson/serializer/BigIntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/BigIntegerCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 429
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/math/BigDecimal;
sget-object v2, Lcom/alibaba/fastjson/serializer/BigDecimalCodec;->instance:Lcom/alibaba/fastjson/serializer/BigDecimalCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 430
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
sget-object v1, Ljava/lang/Float;->TYPE:Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/serializer/FloatCodec;->instance:Lcom/alibaba/fastjson/serializer/FloatCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 431
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Float;
sget-object v2, Lcom/alibaba/fastjson/serializer/FloatCodec;->instance:Lcom/alibaba/fastjson/serializer/FloatCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 432
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
sget-object v1, Ljava/lang/Double;->TYPE:Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 433
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Double;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 434
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
sget-object v1, Ljava/lang/Boolean;->TYPE:Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/serializer/BooleanCodec;->instance:Lcom/alibaba/fastjson/serializer/BooleanCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 435
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Boolean;
sget-object v2, Lcom/alibaba/fastjson/serializer/BooleanCodec;->instance:Lcom/alibaba/fastjson/serializer/BooleanCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 436
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Class;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 437
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, [C
new-instance v2, Lcom/alibaba/fastjson/serializer/CharArrayCodec;
invoke-direct {v2}, Lcom/alibaba/fastjson/serializer/CharArrayCodec;-><init>()V
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 439
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/concurrent/atomic/AtomicBoolean;
sget-object v2, Lcom/alibaba/fastjson/serializer/BooleanCodec;->instance:Lcom/alibaba/fastjson/serializer/BooleanCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 440
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/concurrent/atomic/AtomicInteger;
sget-object v2, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 441
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/concurrent/atomic/AtomicLong;
sget-object v2, Lcom/alibaba/fastjson/serializer/LongCodec;->instance:Lcom/alibaba/fastjson/serializer/LongCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 442
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/concurrent/atomic/AtomicReference;
sget-object v2, Lcom/alibaba/fastjson/serializer/ReferenceCodec;->instance:Lcom/alibaba/fastjson/serializer/ReferenceCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 444
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/ref/WeakReference;
sget-object v2, Lcom/alibaba/fastjson/serializer/ReferenceCodec;->instance:Lcom/alibaba/fastjson/serializer/ReferenceCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 445
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/ref/SoftReference;
sget-object v2, Lcom/alibaba/fastjson/serializer/ReferenceCodec;->instance:Lcom/alibaba/fastjson/serializer/ReferenceCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 447
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/UUID;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 448
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/TimeZone;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 449
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/Locale;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 450
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/Currency;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 452
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/net/Inet4Address;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 453
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/net/Inet6Address;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 454
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/net/InetSocketAddress;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 455
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/io/File;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 456
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/net/URI;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 457
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/net/URL;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 458
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/regex/Pattern;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 459
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/nio/charset/Charset;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 460
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Lcom/alibaba/fastjson/JSONPath;
sget-object v2, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 461
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Number;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/NumberDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 462
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/concurrent/atomic/AtomicIntegerArray;
sget-object v2, Lcom/alibaba/fastjson/serializer/AtomicCodec;->instance:Lcom/alibaba/fastjson/serializer/AtomicCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 463
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/util/concurrent/atomic/AtomicLongArray;
sget-object v2, Lcom/alibaba/fastjson/serializer/AtomicCodec;->instance:Lcom/alibaba/fastjson/serializer/AtomicCodec;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 464
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/StackTraceElement;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/StackTraceElementDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/StackTraceElementDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 466
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/io/Serializable;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 467
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Cloneable;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 468
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/lang/Comparable;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 469
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Ljava/io/Closeable;
sget-object v2, Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 471
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
const-class v1, Lcom/alibaba/fastjson/JSONPObject;
new-instance v2, Lcom/alibaba/fastjson/parser/deserializer/JSONPDeserializer;
invoke-direct {v2}, Lcom/alibaba/fastjson/parser/deserializer/JSONPDeserializer;-><init>()V
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 472
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->initDeserializersWithJavaSql:Ljava/util/concurrent/Callable;
invoke-static {v0}, Lcom/alibaba/fastjson/util/ModuleUtil;->callWhenHasJavaSql(Ljava/util/concurrent/Callable;)Ljava/lang/Object;
return-void
.end method
.method public static isPrimitive2(Ljava/lang/Class;)Z
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
.line 1158
invoke-virtual {p0}, Ljava/lang/Class;->isPrimitive()Z
move-result v0
const/4 v1, 0x0
if-nez v0, :cond_40
const-class v0, Ljava/lang/Boolean;
if-eq p0, v0, :cond_40
const-class v0, Ljava/lang/Character;
if-eq p0, v0, :cond_40
const-class v0, Ljava/lang/Byte;
if-eq p0, v0, :cond_40
const-class v0, Ljava/lang/Short;
if-eq p0, v0, :cond_40
const-class v0, Ljava/lang/Integer;
if-eq p0, v0, :cond_40
const-class v0, Ljava/lang/Long;
if-eq p0, v0, :cond_40
const-class v0, Ljava/lang/Float;
if-eq p0, v0, :cond_40
const-class v0, Ljava/lang/Double;
if-eq p0, v0, :cond_40
const-class v0, Ljava/math/BigInteger;
if-eq p0, v0, :cond_40
const-class v0, Ljava/math/BigDecimal;
if-eq p0, v0, :cond_40
const-class v0, Ljava/lang/String;
if-eq p0, v0, :cond_40
const-class v0, Ljava/util/Date;
if-eq p0, v0, :cond_40
.line 1171
invoke-virtual {p0}, Ljava/lang/Class;->isEnum()Z
move-result v0
if-eqz v0, :cond_3e
goto :goto_40
:cond_3e
move v0, v1
goto :goto_41
:cond_40
:goto_40
const/4 v0, 0x1
.line 1158
:goto_41
invoke-static {v0}, Ljava/lang/Boolean;->valueOf(Z)Ljava/lang/Boolean;
move-result-object v0
.line 1173
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v2
if-nez v2, :cond_54
.line 1174
sget-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->isPrimitiveFuncation:Lcom/alibaba/fastjson/util/Function;
invoke-static {v0, p0}, Lcom/alibaba/fastjson/util/ModuleUtil;->callWhenHasJavaSql(Lcom/alibaba/fastjson/util/Function;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p0
move-object v0, p0
check-cast v0, Ljava/lang/Boolean;
:cond_54
if-eqz v0, :cond_5a
.line 1176
invoke-virtual {v0}, Ljava/lang/Boolean;->booleanValue()Z
move-result v1
:cond_5a
return v1
.end method
.method public static parserAllFieldToCache(Ljava/lang/Class;Ljava/util/Map;)V
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/lang/reflect/Field;",
">;)V"
}
.end annotation
.line 1186
invoke-virtual {p0}, Ljava/lang/Class;->getDeclaredFields()[Ljava/lang/reflect/Field;
move-result-object v0
.line 1187
array-length v1, v0
const/4 v2, 0x0
:goto_6
if-ge v2, v1, :cond_1a
aget-object v3, v0, v2
.line 1188
invoke-virtual {v3}, Ljava/lang/reflect/Field;->getName()Ljava/lang/String;
move-result-object v4
.line 1189
invoke-interface {p1, v4}, Ljava/util/Map;->containsKey(Ljava/lang/Object;)Z
move-result v5
if-nez v5, :cond_17
.line 1190
invoke-interface {p1, v4, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_17
add-int/lit8 v2, v2, 0x1
goto :goto_6
.line 1193
:cond_1a
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
if-eqz v0, :cond_2f
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v0
const-class v1, Ljava/lang/Object;
if-eq v0, v1, :cond_2f
.line 1194
invoke-virtual {p0}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object p0
invoke-static {p0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->parserAllFieldToCache(Ljava/lang/Class;Ljava/util/Map;)V
:cond_2f
return-void
.end method
.method private static splitItemsFormProperty(Ljava/lang/String;)[Ljava/lang/String;
.registers 2
if-eqz p0, :cond_f
.line 476
invoke-virtual {p0}, Ljava/lang/String;->length()I
move-result v0
if-lez v0, :cond_f
const-string v0, ","
.line 477
invoke-virtual {p0, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object p0
return-object p0
:cond_f
const/4 p0, 0x0
return-object p0
.end method
# virtual methods
.method public addAccept(Ljava/lang/String;)V
.registers 6
if-eqz p1, :cond_2b
.line 1283
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_2b
.line 1287
:cond_9
invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J
move-result-wide v0
.line 1288
iget-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->acceptHashCodes:[J
invoke-static {p1, v0, v1}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result p1
if-ltz p1, :cond_16
return-void
.line 1292
:cond_16
iget-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->acceptHashCodes:[J
array-length v2, p1
add-int/lit8 v2, v2, 0x1
new-array v3, v2, [J
add-int/lit8 v2, v2, -0x1
.line 1293
aput-wide v0, v3, v2
.line 1294
array-length v0, p1
const/4 v1, 0x0
invoke-static {p1, v1, v3, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1295
invoke-static {v3}, Ljava/util/Arrays;->sort([J)V
.line 1296
iput-object v3, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->acceptHashCodes:[J
:cond_2b
:goto_2b
return-void
.end method
.method public addAutoTypeCheckHandler(Lcom/alibaba/fastjson/parser/ParserConfig$AutoTypeCheckHandler;)V
.registers 3
.line 1576
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeCheckHandlers:Ljava/util/List;
if-nez v0, :cond_b
.line 1578
new-instance v0, Ljava/util/concurrent/CopyOnWriteArrayList;
invoke-direct {v0}, Ljava/util/concurrent/CopyOnWriteArrayList;-><init>()V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeCheckHandlers:Ljava/util/List;
.line 1583
:cond_b
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public addDeny(Ljava/lang/String;)V
.registers 6
if-eqz p1, :cond_2b
.line 1266
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_2b
.line 1270
:cond_9
invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J
move-result-wide v0
.line 1271
iget-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->denyHashCodes:[J
invoke-static {p1, v0, v1}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result p1
if-ltz p1, :cond_16
return-void
.line 1275
:cond_16
iget-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->denyHashCodes:[J
array-length v2, p1
add-int/lit8 v2, v2, 0x1
new-array v3, v2, [J
add-int/lit8 v2, v2, -0x1
.line 1276
aput-wide v0, v3, v2
.line 1277
array-length v0, p1
const/4 v1, 0x0
invoke-static {p1, v1, v3, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1278
invoke-static {v3}, Ljava/util/Arrays;->sort([J)V
.line 1279
iput-object v3, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->denyHashCodes:[J
:cond_2b
:goto_2b
return-void
.end method
.method public addDenyInternal(Ljava/lang/String;)V
.registers 8
if-eqz p1, :cond_33
.line 1244
invoke-virtual {p1}, Ljava/lang/String;->length()I
move-result v0
if-nez v0, :cond_9
goto :goto_33
.line 1248
:cond_9
invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J
move-result-wide v0
.line 1249
iget-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->internalDenyHashCodes:[J
const/4 v2, 0x0
const/4 v3, 0x1
if-nez p1, :cond_1a
new-array p1, v3, [J
aput-wide v0, p1, v2
.line 1250
iput-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->internalDenyHashCodes:[J
return-void
.line 1254
:cond_1a
invoke-static {p1, v0, v1}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result p1
if-ltz p1, :cond_21
return-void
.line 1258
:cond_21
iget-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->internalDenyHashCodes:[J
array-length v4, p1
add-int/2addr v4, v3
new-array v5, v4, [J
sub-int/2addr v4, v3
.line 1259
aput-wide v0, v5, v4
.line 1260
array-length v0, p1
invoke-static {p1, v2, v5, v2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 1261
invoke-static {v5}, Ljava/util/Arrays;->sort([J)V
.line 1262
iput-object v5, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->internalDenyHashCodes:[J
:cond_33
:goto_33
return-void
.end method
.method public checkAutoType(Ljava/lang/Class;)Ljava/lang/Class;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class;",
")",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.line 1300
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v0
if-eqz v0, :cond_7
return-object p1
.line 1304
:cond_7
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p1
const/4 v0, 0x0
sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-virtual {p0, p1, v0, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
.method public checkAutoType(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Class;
.registers 4
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"*>;)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.line 1308
sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-virtual {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
move-result-object p1
return-object p1
.end method
.method public checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
.registers 28
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/String;",
"Ljava/lang/Class<",
"*>;I)",
"Ljava/lang/Class<",
"*>;"
}
.end annotation
move-object/from16 v1, p0
move-object/from16 v0, p1
move-object/from16 v2, p2
move/from16 v3, p3
const/4 v4, 0x0
if-nez v0, :cond_c
return-object v4
.line 1316
:cond_c
iget-object v5, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeCheckHandlers:Ljava/util/List;
if-eqz v5, :cond_29
.line 1317
iget-object v5, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeCheckHandlers:Ljava/util/List;
invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v5
:cond_16
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_29
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v6
check-cast v6, Lcom/alibaba/fastjson/parser/ParserConfig$AutoTypeCheckHandler;
.line 1318
invoke-interface {v6, v0, v2, v3}, Lcom/alibaba/fastjson/parser/ParserConfig$AutoTypeCheckHandler;->handler(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
move-result-object v6
if-eqz v6, :cond_16
return-object v6
.line 1325
:cond_29
sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->SafeMode:Lcom/alibaba/fastjson/parser/Feature;
iget v5, v5, Lcom/alibaba/fastjson/parser/Feature;->mask:I
.line 1326
iget-boolean v6, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->safeMode:Z
const/4 v7, 0x0
const/4 v8, 0x1
if-nez v6, :cond_3f
and-int v6, v3, v5
if-nez v6, :cond_3f
sget v6, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
and-int/2addr v5, v6
if-eqz v5, :cond_3d
goto :goto_3f
:cond_3d
move v5, v7
goto :goto_40
:cond_3f
:goto_3f
move v5, v8
:goto_40
if-nez v5, :cond_41a
.line 1333
sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->SupportAutoType:Lcom/alibaba/fastjson/parser/Feature;
iget v5, v5, Lcom/alibaba/fastjson/parser/Feature;->mask:I
.line 1334
iget-boolean v6, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeSupport:Z
if-nez v6, :cond_55
and-int/2addr v3, v5
if-nez v3, :cond_55
sget v3, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
and-int/2addr v3, v5
if-eqz v3, :cond_53
goto :goto_55
:cond_53
move v3, v7
goto :goto_56
:cond_55
:goto_55
move v3, v8
.line 1338
:goto_56
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v5
const/16 v6, 0xc0
const-string v9, "autoType is not support. "
if-ge v5, v6, :cond_405
invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I
move-result v5
const/4 v6, 0x3
if-lt v5, v6, :cond_405
if-nez v2, :cond_6b
:cond_69
:goto_69
move v5, v7
goto :goto_cf
.line 1346
:cond_6b
invoke-virtual/range {p2 .. p2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v5
invoke-static {v5}, Lcom/alibaba/fastjson/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J
move-result-wide v10
const-wide v12, -0x6f5da0a455dead62L # -1.514751450580626E-228
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, 0x2d10a5801b9d6136L # 1.2768618085266423E-91
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, -0x50a795a8e1cfd395L # -1.2869594668238042E-80
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, -0x12ff8cff584dd83aL # -1.1341028219519378E217
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, 0x295c4605fd1eaa95L
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, 0x47ef269aadc650b4L # 3.312520992710671E38
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, 0x6439c4dff712ae8bL # 6.373467611436065E174
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, -0x1c22678a5d23ad7dL # -1.1437309411088266E173
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, -0x1d572245fc1961f3L # -1.8328867399748285E167
cmp-long v5, v10, v12
if-eqz v5, :cond_69
const-wide v12, -0x28cb314b3c162e26L # -1.2509996135591577E112
cmp-long v5, v10, v12
if-nez v5, :cond_ce
goto :goto_69
:cond_ce
move v5, v8
:goto_cf
const/16 v10, 0x24
const/16 v11, 0x2e
.line 1364
invoke-virtual {v0, v10, v11}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v10
.line 1367
invoke-virtual {v10, v7}, Ljava/lang/String;->charAt(I)C
move-result v12
int-to-long v12, v12
const-wide v14, -0x340d631b7bdddcdbL # -7.302176725335867E57
xor-long/2addr v12, v14
const-wide v16, 0x100000001b3L
mul-long v12, v12, v16
const-wide v18, -0x509be9b379fdb0e6L # -2.1176223865607047E-80
cmp-long v18, v12, v18
if-eqz v18, :cond_3f0
.line 1372
invoke-virtual {v10}, Ljava/lang/String;->length()I
move-result v18
add-int/lit8 v6, v18, -0x1
invoke-virtual {v10, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
move/from16 v19, v5
int-to-long v4, v6
xor-long/2addr v4, v12
mul-long v4, v4, v16
const-wide v12, 0x9198507b5af98f0L
cmp-long v4, v4, v12
if-eqz v4, :cond_3db
.line 1376
invoke-virtual {v10, v7}, Ljava/lang/String;->charAt(I)C
move-result v4
int-to-long v4, v4
xor-long/2addr v4, v14
mul-long v4, v4, v16
.line 1378
invoke-virtual {v10, v8}, Ljava/lang/String;->charAt(I)C
move-result v6
int-to-long v12, v6
xor-long/2addr v4, v12
mul-long v4, v4, v16
const/4 v6, 0x2
.line 1380
invoke-virtual {v10, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
int-to-long v12, v6
xor-long/2addr v4, v12
mul-long v4, v4, v16
.line 1383
invoke-static {v10}, Lcom/alibaba/fastjson/util/TypeUtils;->fnv1a_64(Ljava/lang/String;)J
move-result-wide v12
.line 1384
sget-object v6, Lcom/alibaba/fastjson/parser/ParserConfig;->INTERNAL_WHITELIST_HASHCODES:[J
invoke-static {v6, v12, v13}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v6
if-ltz v6, :cond_132
move v6, v8
goto :goto_133
:cond_132
move v6, v7
.line 1386
:goto_133
iget-object v14, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->internalDenyHashCodes:[J
if-eqz v14, :cond_171
move-wide/from16 v20, v4
const/4 v14, 0x3
.line 1388
:goto_13a
invoke-virtual {v10}, Ljava/lang/String;->length()I
move-result v15
if-ge v14, v15, :cond_171
.line 1389
invoke-virtual {v10, v14}, Ljava/lang/String;->charAt(I)C
move-result v15
move-wide/from16 v22, v12
int-to-long v11, v15
xor-long v11, v20, v11
mul-long v11, v11, v16
.line 1391
iget-object v13, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->internalDenyHashCodes:[J
invoke-static {v13, v11, v12}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v13
if-gez v13, :cond_15c
add-int/lit8 v14, v14, 0x1
move-wide/from16 v20, v11
move-wide/from16 v12, v22
const/16 v11, 0x2e
goto :goto_13a
.line 1392
:cond_15c
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
:cond_171
move-wide/from16 v22, v12
if-nez v6, :cond_1d1
if-nez v3, :cond_179
if-eqz v19, :cond_1d1
:cond_179
move-wide v12, v4
const/4 v11, 0x3
.line 1399
:goto_17b
invoke-virtual {v10}, Ljava/lang/String;->length()I
move-result v14
if-ge v11, v14, :cond_1d1
.line 1400
invoke-virtual {v10, v11}, Ljava/lang/String;->charAt(I)C
move-result v14
int-to-long v14, v14
xor-long/2addr v12, v14
mul-long v12, v12, v16
.line 1402
iget-object v14, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->acceptHashCodes:[J
invoke-static {v14, v12, v13}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v14
if-ltz v14, :cond_19a
.line 1403
iget-object v14, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->defaultClassLoader:Ljava/lang/ClassLoader;
invoke-static {v0, v14, v8}, Lcom/alibaba/fastjson/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
move-result-object v14
if-eqz v14, :cond_19a
return-object v14
.line 1408
:cond_19a
iget-object v14, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->denyHashCodes:[J
invoke-static {v14, v12, v13}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v14
if-ltz v14, :cond_1c8
invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/util/TypeUtils;->getClassFromMapping(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v14
if-nez v14, :cond_1c8
.line 1409
iget-object v14, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->acceptHashCodes:[J
move-wide/from16 v7, v22
invoke-static {v14, v7, v8}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v14
if-ltz v14, :cond_1b3
goto :goto_1ca
.line 1413
:cond_1b3
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
:cond_1c8
move-wide/from16 v7, v22
:goto_1ca
add-int/lit8 v11, v11, 0x1
move-wide/from16 v22, v7
const/4 v7, 0x0
const/4 v8, 0x1
goto :goto_17b
.line 1418
:cond_1d1
invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/util/TypeUtils;->getClassFromMapping(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v7
if-nez v7, :cond_1dd
.line 1421
iget-object v7, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
invoke-virtual {v7, v0}, Lcom/alibaba/fastjson/util/IdentityHashMap;->findClass(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v7
:cond_1dd
if-nez v2, :cond_1ec
if-eqz v7, :cond_1ec
.line 1424
const-class v8, Ljava/lang/Throwable;
invoke-virtual {v8, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v8
if-eqz v8, :cond_1ec
if-nez v3, :cond_1ec
const/4 v7, 0x0
:cond_1ec
if-nez v7, :cond_1f6
.line 1429
iget-object v7, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->typeMapping:Ljava/util/concurrent/ConcurrentMap;
invoke-interface {v7, v0}, Ljava/util/concurrent/ConcurrentMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/lang/Class;
:cond_1f6
if-eqz v6, :cond_200
.line 1433
iget-object v6, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->defaultClassLoader:Ljava/lang/ClassLoader;
const/4 v7, 0x1
invoke-static {v0, v6, v7}, Lcom/alibaba/fastjson/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
move-result-object v6
move-object v7, v6
:cond_200
const-string v6, " -> "
const-string v8, "type not match. "
if-eqz v7, :cond_237
if-eqz v2, :cond_236
.line 1437
const-class v3, Ljava/util/HashMap;
if-eq v7, v3, :cond_236
const-class v3, Ljava/util/LinkedHashMap;
if-eq v7, v3, :cond_236
.line 1440
invoke-virtual {v2, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_217
goto :goto_236
.line 1441
:cond_217
new-instance v3, Lcom/alibaba/fastjson/JSONException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual/range {p2 .. p2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v3, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
:cond_236
:goto_236
return-object v7
:cond_237
const-string v11, "Error"
const-string v12, "Exception"
if-nez v3, :cond_2b6
const/4 v13, 0x3
.line 1449
:goto_23e
invoke-virtual {v10}, Ljava/lang/String;->length()I
move-result v14
if-ge v13, v14, :cond_2b6
.line 1450
invoke-virtual {v10, v13}, Ljava/lang/String;->charAt(I)C
move-result v14
int-to-long v14, v14
xor-long/2addr v4, v14
mul-long v4, v4, v16
.line 1454
iget-object v14, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->denyHashCodes:[J
invoke-static {v14, v4, v5}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v14
if-ltz v14, :cond_278
.line 1455
invoke-virtual {v0, v12}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_276
invoke-virtual {v0, v11}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_261
goto :goto_276
.line 1459
:cond_261
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
:cond_276
:goto_276
const/4 v2, 0x0
return-object v2
.line 1463
:cond_278
iget-object v14, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->acceptHashCodes:[J
invoke-static {v14, v4, v5}, Ljava/util/Arrays;->binarySearch([JJ)I
move-result v14
if-ltz v14, :cond_2b3
.line 1464
iget-object v3, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->defaultClassLoader:Ljava/lang/ClassLoader;
const/4 v4, 0x1
invoke-static {v0, v3, v4}, Lcom/alibaba/fastjson/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
move-result-object v3
if-nez v3, :cond_28a
return-object v2
:cond_28a
if-eqz v2, :cond_2b2
.line 1470
invoke-virtual {v2, v3}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v4
if-nez v4, :cond_293
goto :goto_2b2
.line 1471
:cond_293
new-instance v3, Lcom/alibaba/fastjson/JSONException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual/range {p2 .. p2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v3, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
:cond_2b2
:goto_2b2
return-object v3
:cond_2b3
add-int/lit8 v13, v13, 0x1
goto :goto_23e
.line 1482
:cond_2b6
:try_start_2b6
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const/16 v5, 0x2f
const/16 v10, 0x2e
invoke-virtual {v0, v10, v5}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v5, ".class"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
.line 1483
iget-object v5, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->defaultClassLoader:Ljava/lang/ClassLoader;
:try_end_2d1
.catch Ljava/lang/Exception; {:try_start_2b6 .. :try_end_2d1} :catch_30d
.catchall {:try_start_2b6 .. :try_end_2d1} :catchall_307
if-eqz v5, :cond_2db
.line 1484
:try_start_2d3
invoke-virtual {v5, v4}, Ljava/lang/ClassLoader;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v4
:try_end_2d7
.catch Ljava/lang/Exception; {:try_start_2d3 .. :try_end_2d7} :catch_2d8
.catchall {:try_start_2d3 .. :try_end_2d7} :catchall_307
goto :goto_2e5
:catch_2d8
const/4 v4, 0x0
:catch_2d9
const/4 v15, 0x0
goto :goto_30f
.line 1486
:cond_2db
:try_start_2db
const-class v5, Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v5}, Ljava/lang/Class;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v5
invoke-virtual {v5, v4}, Ljava/lang/ClassLoader;->getResourceAsStream(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v4
:try_end_2e5
.catch Ljava/lang/Exception; {:try_start_2db .. :try_end_2e5} :catch_30d
.catchall {:try_start_2db .. :try_end_2e5} :catchall_307
:goto_2e5
if-eqz v4, :cond_301
.line 1489
:try_start_2e7
new-instance v5, Lcom/alibaba/fastjson/asm/ClassReader;
const/4 v10, 0x1
invoke-direct {v5, v4, v10}, Lcom/alibaba/fastjson/asm/ClassReader;-><init>(Ljava/io/InputStream;Z)V
.line 1490
new-instance v13, Lcom/alibaba/fastjson/asm/TypeCollector;
const-string v14, "<clinit>"
:try_end_2f1
.catch Ljava/lang/Exception; {:try_start_2e7 .. :try_end_2f1} :catch_2d9
.catchall {:try_start_2e7 .. :try_end_2f1} :catchall_2ff
const/4 v15, 0x0
:try_start_2f2
new-array v10, v15, [Ljava/lang/Class;
invoke-direct {v13, v14, v10}, Lcom/alibaba/fastjson/asm/TypeCollector;-><init>(Ljava/lang/String;[Ljava/lang/Class;)V
.line 1491
invoke-virtual {v5, v13}, Lcom/alibaba/fastjson/asm/ClassReader;->accept(Lcom/alibaba/fastjson/asm/TypeCollector;)V
.line 1492
invoke-virtual {v13}, Lcom/alibaba/fastjson/asm/TypeCollector;->hasJsonType()Z
move-result v5
:try_end_2fe
.catch Ljava/lang/Exception; {:try_start_2f2 .. :try_end_2fe} :catch_30f
.catchall {:try_start_2f2 .. :try_end_2fe} :catchall_2ff
goto :goto_303
:catchall_2ff
move-exception v0
goto :goto_309
:cond_301
const/4 v15, 0x0
move v5, v15
.line 1497
:goto_303
invoke-static {v4}, Lcom/alibaba/fastjson/util/IOUtils;->close(Ljava/io/Closeable;)V
goto :goto_313
:catchall_307
move-exception v0
const/4 v4, 0x0
:goto_309
invoke-static {v4}, Lcom/alibaba/fastjson/util/IOUtils;->close(Ljava/io/Closeable;)V
.line 1498
throw v0
:catch_30d
const/4 v15, 0x0
const/4 v4, 0x0
.line 1497
:catch_30f
:goto_30f
invoke-static {v4}, Lcom/alibaba/fastjson/util/IOUtils;->close(Ljava/io/Closeable;)V
move v5, v15
:goto_313
if-nez v3, :cond_319
if-nez v5, :cond_319
if-eqz v19, :cond_327
:cond_319
if-nez v3, :cond_320
if-eqz v5, :cond_31e
goto :goto_320
:cond_31e
move v7, v15
goto :goto_321
:cond_320
:goto_320
const/4 v7, 0x1
.line 1502
:goto_321
iget-object v4, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->defaultClassLoader:Ljava/lang/ClassLoader;
invoke-static {v0, v4, v7}, Lcom/alibaba/fastjson/util/TypeUtils;->loadClass(Ljava/lang/String;Ljava/lang/ClassLoader;Z)Ljava/lang/Class;
move-result-object v7
:cond_327
if-eqz v7, :cond_3ad
if-eqz v5, :cond_331
if-eqz v3, :cond_330
.line 1508
invoke-static {v0, v7}, Lcom/alibaba/fastjson/util/TypeUtils;->addMapping(Ljava/lang/String;Ljava/lang/Class;)V
:cond_330
return-object v7
.line 1513
:cond_331
const-class v4, Ljava/lang/ClassLoader;
invoke-virtual {v4, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v4
if-nez v4, :cond_398
const-class v4, Ljavax/sql/DataSource;
.line 1514
invoke-virtual {v4, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v4
if-nez v4, :cond_398
const-class v4, Ljavax/sql/RowSet;
.line 1515
invoke-virtual {v4, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v4
if-nez v4, :cond_398
if-eqz v2, :cond_376
.line 1521
invoke-virtual {v2, v7}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v4
if-eqz v4, :cond_357
if-eqz v3, :cond_356
.line 1523
invoke-static {v0, v7}, Lcom/alibaba/fastjson/util/TypeUtils;->addMapping(Ljava/lang/String;Ljava/lang/Class;)V
:cond_356
return-object v7
.line 1527
:cond_357
new-instance v3, Lcom/alibaba/fastjson/JSONException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual/range {p2 .. p2}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v4, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v3, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v3
.line 1531
:cond_376
iget-object v2, v1, Lcom/alibaba/fastjson/parser/ParserConfig;->propertyNamingStrategy:Lcom/alibaba/fastjson/PropertyNamingStrategy;
invoke-static {v7, v7, v2}, Lcom/alibaba/fastjson/util/JavaBeanInfo;->build(Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/PropertyNamingStrategy;)Lcom/alibaba/fastjson/util/JavaBeanInfo;
move-result-object v2
.line 1532
iget-object v2, v2, Lcom/alibaba/fastjson/util/JavaBeanInfo;->creatorConstructor:Ljava/lang/reflect/Constructor;
if-eqz v2, :cond_3ad
if-nez v3, :cond_383
goto :goto_3ad
.line 1533
:cond_383
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 1517
:cond_398
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
:cond_3ad
:goto_3ad
if-nez v3, :cond_3d3
.line 1538
invoke-virtual {v0, v12}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_3d1
invoke-virtual {v0, v11}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_3bc
goto :goto_3d1
.line 1542
:cond_3bc
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
:cond_3d1
:goto_3d1
const/4 v2, 0x0
return-object v2
:cond_3d3
if-eqz v7, :cond_3da
if-eqz v3, :cond_3da
.line 1547
invoke-static {v0, v7}, Lcom/alibaba/fastjson/util/TypeUtils;->addMapping(Ljava/lang/String;Ljava/lang/Class;)V
:cond_3da
return-object v7
.line 1373
:cond_3db
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 1369
:cond_3f0
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 1339
:cond_405
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 1330
:cond_41a
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "safeMode not support autoType : "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.end method
.method public clearDeserializers()V
.registers 2
.line 1555
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
invoke-virtual {v0}, Lcom/alibaba/fastjson/util/IdentityHashMap;->clear()V
.line 1556
invoke-direct {p0}, Lcom/alibaba/fastjson/parser/ParserConfig;->initDeserializers()V
return-void
.end method
.method public configFromPropety(Ljava/util/Properties;)V
.registers 3
const-string v0, "fastjson.parser.deny"
.line 484
invoke-virtual {p1, v0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 485
invoke-static {v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->splitItemsFormProperty(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 486
invoke-direct {p0, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->addItemsToDeny([Ljava/lang/String;)V
const-string v0, "fastjson.parser.autoTypeAccept"
.line 489
invoke-virtual {p1, v0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 490
invoke-static {v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->splitItemsFormProperty(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 491
invoke-direct {p0, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->addItemsToAccept([Ljava/lang/String;)V
const-string v0, "fastjson.parser.autoTypeSupport"
.line 494
invoke-virtual {p1, v0}, Ljava/util/Properties;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
const-string v0, "true"
.line 495
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2c
const/4 p1, 0x1
.line 496
iput-boolean p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeSupport:Z
goto :goto_37
:cond_2c
const-string v0, "false"
.line 497
invoke-virtual {v0, p1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result p1
if-eqz p1, :cond_37
const/4 p1, 0x0
.line 498
iput-boolean p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeSupport:Z
:cond_37
:goto_37
return-void
.end method
.method public createFieldDeserializer(Lcom/alibaba/fastjson/parser/ParserConfig;Lcom/alibaba/fastjson/util/JavaBeanInfo;Lcom/alibaba/fastjson/util/FieldInfo;)Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
.registers 8
.line 1089
iget-object p2, p2, Lcom/alibaba/fastjson/util/JavaBeanInfo;->clazz:Ljava/lang/Class;
.line 1090
iget-object v0, p3, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class;
.line 1093
invoke-virtual {p3}, Lcom/alibaba/fastjson/util/FieldInfo;->getAnnotation()Lcom/alibaba/fastjson/annotation/JSONField;
move-result-object v1
const/4 v2, 0x0
if-eqz v1, :cond_15
.line 1095
invoke-interface {v1}, Lcom/alibaba/fastjson/annotation/JSONField;->deserializeUsing()Ljava/lang/Class;
move-result-object v1
.line 1096
const-class v3, Ljava/lang/Void;
if-ne v1, v3, :cond_14
goto :goto_15
:cond_14
move-object v2, v1
:cond_15
:goto_15
if-nez v2, :cond_25
.line 1101
const-class v1, Ljava/util/List;
if-eq v0, v1, :cond_1f
const-class v1, Ljava/util/ArrayList;
if-ne v0, v1, :cond_25
.line 1102
:cond_1f
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/ArrayListTypeFieldDeserializer;
invoke-direct {v0, p1, p2, p3}, Lcom/alibaba/fastjson/parser/deserializer/ArrayListTypeFieldDeserializer;-><init>(Lcom/alibaba/fastjson/parser/ParserConfig;Ljava/lang/Class;Lcom/alibaba/fastjson/util/FieldInfo;)V
return-object v0
.line 1105
:cond_25
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/DefaultFieldDeserializer;
invoke-direct {v0, p1, p2, p3}, Lcom/alibaba/fastjson/parser/deserializer/DefaultFieldDeserializer;-><init>(Lcom/alibaba/fastjson/parser/ParserConfig;Ljava/lang/Class;Lcom/alibaba/fastjson/util/FieldInfo;)V
return-object v0
.end method
.method public createJavaBeanDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.registers 14
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/reflect/Type;",
")",
"Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;"
}
.end annotation
.line 936
iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->asmEnable:Z
iget-boolean v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->fieldBased:Z
const/4 v2, 0x1
xor-int/2addr v1, v2
and-int/2addr v0, v1
const/4 v1, 0x0
if-eqz v0, :cond_56
.line 938
const-class v3, Lcom/alibaba/fastjson/annotation/JSONType;
invoke-static {p1, v3}, Lcom/alibaba/fastjson/util/TypeUtils;->getAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v3
check-cast v3, Lcom/alibaba/fastjson/annotation/JSONType;
if-eqz v3, :cond_37
.line 941
invoke-interface {v3}, Lcom/alibaba/fastjson/annotation/JSONType;->deserializer()Ljava/lang/Class;
move-result-object v0
.line 942
const-class v4, Ljava/lang/Void;
if-eq v0, v4, :cond_27
.line 944
:try_start_1c
invoke-virtual {v0}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v0
.line 945
instance-of v4, v0, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
if-eqz v4, :cond_27
.line 946
check-cast v0, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
:try_end_26
.catchall {:try_start_1c .. :try_end_26} :catchall_27
return-object v0
.line 953
:catchall_27
:cond_27
invoke-interface {v3}, Lcom/alibaba/fastjson/annotation/JSONType;->asm()Z
move-result v0
if-eqz v0, :cond_36
.line 954
invoke-interface {v3}, Lcom/alibaba/fastjson/annotation/JSONType;->parseFeatures()[Lcom/alibaba/fastjson/parser/Feature;
move-result-object v0
array-length v0, v0
if-nez v0, :cond_36
move v0, v2
goto :goto_37
:cond_36
move v0, v1
:cond_37
:goto_37
if-eqz v0, :cond_56
.line 958
invoke-static {p1, v3}, Lcom/alibaba/fastjson/util/JavaBeanInfo;->getBuilderClass(Ljava/lang/Class;Lcom/alibaba/fastjson/annotation/JSONType;)Ljava/lang/Class;
move-result-object v3
if-nez v3, :cond_40
move-object v3, p1
.line 964
:cond_40
invoke-virtual {v3}, Ljava/lang/Class;->getModifiers()I
move-result v4
invoke-static {v4}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v4
if-nez v4, :cond_4c
move v0, v1
goto :goto_56
.line 969
:cond_4c
invoke-virtual {v3}, Ljava/lang/Class;->getSuperclass()Ljava/lang/Class;
move-result-object v3
.line 970
const-class v4, Ljava/lang/Object;
if-eq v3, v4, :cond_56
if-nez v3, :cond_40
.line 977
:cond_56
:goto_56
invoke-virtual {p1}, Ljava/lang/Class;->getTypeParameters()[Ljava/lang/reflect/TypeVariable;
move-result-object v3
array-length v3, v3
if-eqz v3, :cond_5e
move v0, v1
:cond_5e
if-eqz v0, :cond_6d
.line 981
iget-object v3, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->asmFactory:Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;
if-eqz v3, :cond_6d
iget-object v3, v3, Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;->classLoader:Lcom/alibaba/fastjson/util/ASMClassLoader;
invoke-virtual {v3, p1}, Lcom/alibaba/fastjson/util/ASMClassLoader;->isExternalClass(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_6d
move v0, v1
:cond_6d
if-eqz v0, :cond_77
.line 986
invoke-virtual {p1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/alibaba/fastjson/util/ASMUtils;->checkName(Ljava/lang/String;)Z
move-result v0
:cond_77
if-eqz v0, :cond_137
.line 990
invoke-virtual {p1}, Ljava/lang/Class;->isInterface()Z
move-result v3
if-eqz v3, :cond_80
move v0, v1
.line 993
:cond_80
iget-object v5, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->propertyNamingStrategy:Lcom/alibaba/fastjson/PropertyNamingStrategy;
const/4 v6, 0x0
sget-boolean v7, Lcom/alibaba/fastjson/util/TypeUtils;->compatibleWithJavaBean:Z
iget-boolean v8, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->jacksonCompatible:Z
move-object v3, p1
move-object v4, p2
invoke-static/range {v3 .. v8}, Lcom/alibaba/fastjson/util/JavaBeanInfo;->build(Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/PropertyNamingStrategy;ZZZ)Lcom/alibaba/fastjson/util/JavaBeanInfo;
move-result-object v3
if-eqz v0, :cond_97
.line 1001
iget-object v4, v3, Lcom/alibaba/fastjson/util/JavaBeanInfo;->fields:[Lcom/alibaba/fastjson/util/FieldInfo;
array-length v4, v4
const/16 v5, 0xc8
if-le v4, v5, :cond_97
move v0, v1
.line 1005
:cond_97
iget-object v4, v3, Lcom/alibaba/fastjson/util/JavaBeanInfo;->defaultConstructor:Ljava/lang/reflect/Constructor;
if-eqz v0, :cond_a4
if-nez v4, :cond_a4
.line 1006
invoke-virtual {p1}, Ljava/lang/Class;->isInterface()Z
move-result v4
if-nez v4, :cond_a4
move v0, v1
.line 1010
:cond_a4
iget-object v3, v3, Lcom/alibaba/fastjson/util/JavaBeanInfo;->fields:[Lcom/alibaba/fastjson/util/FieldInfo;
array-length v4, v3
move v5, v1
:goto_a8
if-ge v5, v4, :cond_137
aget-object v6, v3, v5
.line 1011
iget-boolean v7, v6, Lcom/alibaba/fastjson/util/FieldInfo;->getOnly:Z
if-eqz v7, :cond_b3
:cond_b0
:goto_b0
move v0, v1
goto/16 :goto_137
.line 1016
:cond_b3
iget-object v7, v6, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class;
.line 1017
invoke-virtual {v7}, Ljava/lang/Class;->getModifiers()I
move-result v8
invoke-static {v8}, Ljava/lang/reflect/Modifier;->isPublic(I)Z
move-result v8
if-nez v8, :cond_c0
goto :goto_b0
.line 1022
:cond_c0
invoke-virtual {v7}, Ljava/lang/Class;->isMemberClass()Z
move-result v8
if-eqz v8, :cond_d1
invoke-virtual {v7}, Ljava/lang/Class;->getModifiers()I
move-result v8
invoke-static {v8}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v8
if-nez v8, :cond_d1
goto :goto_b0
.line 1027
:cond_d1
invoke-virtual {v6}, Lcom/alibaba/fastjson/util/FieldInfo;->getMember()Ljava/lang/reflect/Member;
move-result-object v8
if-eqz v8, :cond_e6
.line 1028
invoke-virtual {v6}, Lcom/alibaba/fastjson/util/FieldInfo;->getMember()Ljava/lang/reflect/Member;
move-result-object v8
invoke-interface {v8}, Ljava/lang/reflect/Member;->getName()Ljava/lang/String;
move-result-object v8
invoke-static {v8}, Lcom/alibaba/fastjson/util/ASMUtils;->checkName(Ljava/lang/String;)Z
move-result v8
if-nez v8, :cond_e6
goto :goto_b0
.line 1033
:cond_e6
invoke-virtual {v6}, Lcom/alibaba/fastjson/util/FieldInfo;->getAnnotation()Lcom/alibaba/fastjson/annotation/JSONField;
move-result-object v8
if-eqz v8, :cond_115
.line 1035
invoke-interface {v8}, Lcom/alibaba/fastjson/annotation/JSONField;->name()Ljava/lang/String;
move-result-object v9
invoke-static {v9}, Lcom/alibaba/fastjson/util/ASMUtils;->checkName(Ljava/lang/String;)Z
move-result v9
if-eqz v9, :cond_b0
.line 1036
invoke-interface {v8}, Lcom/alibaba/fastjson/annotation/JSONField;->format()Ljava/lang/String;
move-result-object v9
invoke-virtual {v9}, Ljava/lang/String;->length()I
move-result v9
if-nez v9, :cond_b0
.line 1037
invoke-interface {v8}, Lcom/alibaba/fastjson/annotation/JSONField;->deserializeUsing()Ljava/lang/Class;
move-result-object v9
const-class v10, Ljava/lang/Void;
if-ne v9, v10, :cond_b0
.line 1038
invoke-interface {v8}, Lcom/alibaba/fastjson/annotation/JSONField;->parseFeatures()[Lcom/alibaba/fastjson/parser/Feature;
move-result-object v9
array-length v9, v9
if-nez v9, :cond_b0
.line 1039
invoke-interface {v8}, Lcom/alibaba/fastjson/annotation/JSONField;->unwrapped()Z
move-result v8
if-nez v8, :cond_b0
:cond_115
iget-object v8, v6, Lcom/alibaba/fastjson/util/FieldInfo;->method:Ljava/lang/reflect/Method;
if-eqz v8, :cond_123
iget-object v6, v6, Lcom/alibaba/fastjson/util/FieldInfo;->method:Ljava/lang/reflect/Method;
.line 1040
invoke-virtual {v6}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v6
array-length v6, v6
if-le v6, v2, :cond_123
goto :goto_b0
.line 1045
:cond_123
invoke-virtual {v7}, Ljava/lang/Class;->isEnum()Z
move-result v6
if-eqz v6, :cond_133
.line 1046
invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v6
.line 1047
instance-of v6, v6, Lcom/alibaba/fastjson/parser/deserializer/EnumDeserializer;
if-nez v6, :cond_133
goto/16 :goto_b0
:cond_133
add-int/lit8 v5, v5, 0x1
goto/16 :goto_a8
:cond_137
:goto_137
if-eqz v0, :cond_14a
.line 1056
invoke-virtual {p1}, Ljava/lang/Class;->isMemberClass()Z
move-result v2
if-eqz v2, :cond_14a
invoke-virtual {p1}, Ljava/lang/Class;->getModifiers()I
move-result v2
invoke-static {v2}, Ljava/lang/reflect/Modifier;->isStatic(I)Z
move-result v2
if-nez v2, :cond_14a
move v0, v1
:cond_14a
if-eqz v0, :cond_153
.line 1062
invoke-static {p1}, Lcom/alibaba/fastjson/util/TypeUtils;->isXmlField(Ljava/lang/Class;)Z
move-result v2
if-eqz v2, :cond_153
goto :goto_154
:cond_153
move v1, v0
:goto_154
if-nez v1, :cond_15c
.line 1068
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
invoke-direct {v0, p0, p1, p2}, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;-><init>(Lcom/alibaba/fastjson/parser/ParserConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;)V
return-object v0
.line 1071
:cond_15c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->propertyNamingStrategy:Lcom/alibaba/fastjson/PropertyNamingStrategy;
invoke-static {p1, p2, v0}, Lcom/alibaba/fastjson/util/JavaBeanInfo;->build(Ljava/lang/Class;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/PropertyNamingStrategy;)Lcom/alibaba/fastjson/util/JavaBeanInfo;
move-result-object v0
.line 1073
:try_start_162
iget-object v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->asmFactory:Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;
invoke-virtual {v1, p0, v0}, Lcom/alibaba/fastjson/parser/deserializer/ASMDeserializerFactory;->createJavaBeanDeserializer(Lcom/alibaba/fastjson/parser/ParserConfig;Lcom/alibaba/fastjson/util/JavaBeanInfo;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object p1
:try_end_168
.catch Ljava/lang/NoSuchMethodException; {:try_start_162 .. :try_end_168} :catch_18b
.catch Lcom/alibaba/fastjson/JSONException; {:try_start_162 .. :try_end_168} :catch_185
.catch Ljava/lang/Exception; {:try_start_162 .. :try_end_168} :catch_169
return-object p1
:catch_169
move-exception p2
.line 1082
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "create asm deserializer error, "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v0
.line 1080
:catch_185
new-instance p1, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
invoke-direct {p1, p0, v0}, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;-><init>(Lcom/alibaba/fastjson/parser/ParserConfig;Lcom/alibaba/fastjson/util/JavaBeanInfo;)V
return-object p1
.line 1078
:catch_18b
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;
invoke-direct {v0, p0, p1, p2}, Lcom/alibaba/fastjson/parser/deserializer/JavaBeanDeserializer;-><init>(Lcom/alibaba/fastjson/parser/ParserConfig;Ljava/lang/Class;Ljava/lang/reflect/Type;)V
return-object v0
.end method
.method public get(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.registers 4
.line 1124
invoke-static {p1}, Lcom/alibaba/fastjson/JSON;->getMixInAnnotations(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v0
if-nez v0, :cond_f
.line 1126
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
return-object p1
.line 1128
:cond_f
iget-object v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->mixInDeserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
invoke-virtual {v1, p1}, Lcom/alibaba/fastjson/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/alibaba/fastjson/util/IdentityHashMap;
if-nez p1, :cond_1b
const/4 p1, 0x0
return-object p1
.line 1132
:cond_1b
invoke-virtual {p1, v0}, Lcom/alibaba/fastjson/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
return-object p1
.end method
.method public getDefaultClassLoader()Ljava/lang/ClassLoader;
.registers 2
.line 1236
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->defaultClassLoader:Ljava/lang/ClassLoader;
return-object v0
.end method
.method public getDerializers()Lcom/alibaba/fastjson/util/IdentityHashMap;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/alibaba/fastjson/util/IdentityHashMap<",
"Ljava/lang/reflect/Type;",
"Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;",
">;"
}
.end annotation
.line 570
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
return-object v0
.end method
.method public getDeserializer(Lcom/alibaba/fastjson/util/FieldInfo;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.registers 3
.line 1136
iget-object v0, p1, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class;
iget-object p1, p1, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object p1
return-object p1
.end method
.method public getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.registers 25
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/lang/reflect/Type;",
")",
"Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;"
}
.end annotation
move-object/from16 v0, p0
move-object/from16 v1, p1
move-object/from16 v2, p2
const-string v3, "java.util.Optional"
.line 609
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v4
if-nez v4, :cond_1d
.line 610
instance-of v5, v2, Lcom/alibaba/fastjson/util/ParameterizedTypeImpl;
if-eqz v5, :cond_1d
.line 611
move-object v4, v2
check-cast v4, Lcom/alibaba/fastjson/util/ParameterizedTypeImpl;
invoke-static {v4}, Lcom/alibaba/fastjson/TypeReference;->intern(Lcom/alibaba/fastjson/util/ParameterizedTypeImpl;)Ljava/lang/reflect/Type;
move-result-object v4
.line 612
invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v4
:cond_1d
if-eqz v4, :cond_20
return-object v4
:cond_20
if-nez v2, :cond_23
move-object v2, v1
.line 623
:cond_23
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v4
if-eqz v4, :cond_2a
return-object v4
.line 629
:cond_2a
const-class v5, Lcom/alibaba/fastjson/annotation/JSONType;
invoke-static {v1, v5}, Lcom/alibaba/fastjson/util/TypeUtils;->getAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v5
check-cast v5, Lcom/alibaba/fastjson/annotation/JSONType;
if-eqz v5, :cond_41
.line 631
invoke-interface {v5}, Lcom/alibaba/fastjson/annotation/JSONType;->mappingTo()Ljava/lang/Class;
move-result-object v5
.line 632
const-class v6, Ljava/lang/Void;
if-eq v5, v6, :cond_41
.line 633
invoke-virtual {v0, v5, v5}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v1
return-object v1
.line 638
:cond_41
instance-of v5, v2, Ljava/lang/reflect/WildcardType;
if-nez v5, :cond_4d
instance-of v5, v2, Ljava/lang/reflect/TypeVariable;
if-nez v5, :cond_4d
instance-of v5, v2, Ljava/lang/reflect/ParameterizedType;
if-eqz v5, :cond_51
.line 639
:cond_4d
invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v4
:cond_51
if-eqz v4, :cond_54
return-object v4
.line 646
:cond_54
iget-object v5, v0, Lcom/alibaba/fastjson/parser/ParserConfig;->modules:Ljava/util/List;
invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v5
:cond_5a
invoke-interface {v5}, Ljava/util/Iterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_70
invoke-interface {v5}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/alibaba/fastjson/spi/Module;
.line 647
invoke-interface {v4, v0, v1}, Lcom/alibaba/fastjson/spi/Module;->createDeserializer(Lcom/alibaba/fastjson/parser/ParserConfig;Ljava/lang/Class;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v4
if-eqz v4, :cond_5a
.line 649
invoke-virtual {v0, v2, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
return-object v4
.line 654
:cond_70
invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v5
const/16 v6, 0x24
const/16 v7, 0x2e
.line 655
invoke-virtual {v5, v6, v7}, Ljava/lang/String;->replace(CC)Ljava/lang/String;
move-result-object v5
const-string v6, "java.awt."
.line 657
invoke-virtual {v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
const/4 v7, 0x4
const/4 v8, 0x0
const/4 v9, 0x1
if-eqz v6, :cond_b9
.line 658
invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/serializer/AwtCodec;->support(Ljava/lang/Class;)Z
move-result v6
if-eqz v6, :cond_b9
.line 659
sget-boolean v6, Lcom/alibaba/fastjson/parser/ParserConfig;->awtError:Z
if-nez v6, :cond_b9
const-string v4, "java.awt.Point"
const-string v6, "java.awt.Font"
const-string v10, "java.awt.Rectangle"
const-string v11, "java.awt.Color"
.line 660
filled-new-array {v4, v6, v10, v11}, [Ljava/lang/String;
move-result-object v4
move v6, v8
:goto_9e
if-ge v6, v7, :cond_b7
.line 668
:try_start_a0
aget-object v10, v4, v6
.line 669
invoke-virtual {v10, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_b2
.line 670
invoke-static {v10}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v4
sget-object v6, Lcom/alibaba/fastjson/serializer/AwtCodec;->instance:Lcom/alibaba/fastjson/serializer/AwtCodec;
invoke-virtual {v0, v4, v6}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:try_end_b1
.catchall {:try_start_a0 .. :try_end_b1} :catchall_b5
return-object v6
:cond_b2
add-int/lit8 v6, v6, 0x1
goto :goto_9e
.line 676
:catchall_b5
sput-boolean v9, Lcom/alibaba/fastjson/parser/ParserConfig;->awtError:Z
.line 679
:cond_b7
sget-object v4, Lcom/alibaba/fastjson/serializer/AwtCodec;->instance:Lcom/alibaba/fastjson/serializer/AwtCodec;
.line 683
:cond_b9
sget-boolean v6, Lcom/alibaba/fastjson/parser/ParserConfig;->jdk8Error:Z
if-nez v6, :cond_125
:try_start_bd
const-string v6, "java.time."
.line 685
invoke-virtual {v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_fb
const/16 v3, 0xc
const-string v10, "java.time.LocalDateTime"
const-string v11, "java.time.LocalDate"
const-string v12, "java.time.LocalTime"
const-string v13, "java.time.ZonedDateTime"
const-string v14, "java.time.OffsetDateTime"
const-string v15, "java.time.OffsetTime"
const-string v16, "java.time.ZoneOffset"
const-string v17, "java.time.ZoneRegion"
const-string v18, "java.time.ZoneId"
const-string v19, "java.time.Period"
const-string v20, "java.time.Duration"
const-string v21, "java.time.Instant"
.line 686
filled-new-array/range {v10 .. v21}, [Ljava/lang/String;
move-result-object v6
move v7, v8
:goto_e4
if-ge v7, v3, :cond_125
.line 701
aget-object v10, v6, v7
.line 702
invoke-virtual {v10, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_f8
.line 703
invoke-static {v10}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v3
sget-object v4, Lcom/alibaba/fastjson/parser/deserializer/Jdk8DateCodec;->instance:Lcom/alibaba/fastjson/parser/deserializer/Jdk8DateCodec;
invoke-virtual {v0, v3, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
return-object v4
:cond_f8
add-int/lit8 v7, v7, 0x1
goto :goto_e4
.line 707
:cond_fb
invoke-virtual {v5, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v6
if-eqz v6, :cond_125
const-string v6, "java.util.OptionalDouble"
const-string v10, "java.util.OptionalInt"
const-string v11, "java.util.OptionalLong"
.line 708
filled-new-array {v3, v6, v10, v11}, [Ljava/lang/String;
move-result-object v3
move v6, v8
:goto_10c
if-ge v6, v7, :cond_125
.line 714
aget-object v10, v3, v6
.line 715
invoke-virtual {v10, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_120
.line 716
invoke-static {v10}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v3
sget-object v4, Lcom/alibaba/fastjson/parser/deserializer/OptionalCodec;->instance:Lcom/alibaba/fastjson/parser/deserializer/OptionalCodec;
invoke-virtual {v0, v3, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:try_end_11f
.catchall {:try_start_bd .. :try_end_11f} :catchall_123
return-object v4
:cond_120
add-int/lit8 v6, v6, 0x1
goto :goto_10c
.line 723
:catchall_123
sput-boolean v9, Lcom/alibaba/fastjson/parser/ParserConfig;->jdk8Error:Z
.line 727
:cond_125
sget-boolean v3, Lcom/alibaba/fastjson/parser/ParserConfig;->jodaError:Z
if-nez v3, :cond_163
:try_start_129
const-string v3, "org.joda.time."
.line 729
invoke-virtual {v5, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_163
const/16 v3, 0x9
const-string v10, "org.joda.time.DateTime"
const-string v11, "org.joda.time.LocalDate"
const-string v12, "org.joda.time.LocalDateTime"
const-string v13, "org.joda.time.LocalTime"
const-string v14, "org.joda.time.Instant"
const-string v15, "org.joda.time.Period"
const-string v16, "org.joda.time.Duration"
const-string v17, "org.joda.time.DateTimeZone"
const-string v18, "org.joda.time.format.DateTimeFormatter"
.line 730
filled-new-array/range {v10 .. v18}, [Ljava/lang/String;
move-result-object v6
move v7, v8
:goto_14a
if-ge v7, v3, :cond_163
.line 742
aget-object v10, v6, v7
.line 743
invoke-virtual {v10, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_15e
.line 744
invoke-static {v10}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v3
sget-object v4, Lcom/alibaba/fastjson/serializer/JodaCodec;->instance:Lcom/alibaba/fastjson/serializer/JodaCodec;
invoke-virtual {v0, v3, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:try_end_15d
.catchall {:try_start_129 .. :try_end_15d} :catchall_161
return-object v4
:cond_15e
add-int/lit8 v7, v7, 0x1
goto :goto_14a
.line 751
:catchall_161
sput-boolean v9, Lcom/alibaba/fastjson/parser/ParserConfig;->jodaError:Z
.line 755
:cond_163
sget-boolean v3, Lcom/alibaba/fastjson/parser/ParserConfig;->guavaError:Z
if-nez v3, :cond_198
const-string v3, "com.google.common.collect."
.line 756
invoke-virtual {v5, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_198
const/4 v3, 0x5
:try_start_170
const-string v6, "com.google.common.collect.HashMultimap"
const-string v7, "com.google.common.collect.LinkedListMultimap"
const-string v10, "com.google.common.collect.LinkedHashMultimap"
const-string v11, "com.google.common.collect.ArrayListMultimap"
const-string v12, "com.google.common.collect.TreeMultimap"
.line 758
filled-new-array {v6, v7, v10, v11, v12}, [Ljava/lang/String;
move-result-object v6
move v7, v8
:goto_17f
if-ge v7, v3, :cond_198
.line 766
aget-object v10, v6, v7
.line 767
invoke-virtual {v10, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_193
.line 768
invoke-static {v10}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v3
sget-object v4, Lcom/alibaba/fastjson/serializer/GuavaCodec;->instance:Lcom/alibaba/fastjson/serializer/GuavaCodec;
invoke-virtual {v0, v3, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:try_end_192
.catch Ljava/lang/ClassNotFoundException; {:try_start_170 .. :try_end_192} :catch_196
return-object v4
:cond_193
add-int/lit8 v7, v7, 0x1
goto :goto_17f
.line 774
:catch_196
sput-boolean v9, Lcom/alibaba/fastjson/parser/ParserConfig;->guavaError:Z
:cond_198
const-string v3, "java.nio.ByteBuffer"
.line 778
invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1a5
.line 779
sget-object v4, Lcom/alibaba/fastjson/serializer/ByteBufferCodec;->instance:Lcom/alibaba/fastjson/serializer/ByteBufferCodec;
invoke-virtual {v0, v1, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:cond_1a5
const-string v3, "java.nio.file.Path"
.line 782
invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1b2
.line 783
sget-object v4, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
.line 786
:cond_1b2
const-class v3, Ljava/util/Map$Entry;
if-ne v1, v3, :cond_1bb
.line 787
sget-object v4, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
invoke-virtual {v0, v1, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:cond_1bb
const-string v3, "org.javamoney.moneta.Money"
.line 790
invoke-virtual {v5, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v3
if-eqz v3, :cond_1c8
.line 791
sget-object v4, Lcom/alibaba/fastjson/support/moneta/MonetaCodec;->instance:Lcom/alibaba/fastjson/support/moneta/MonetaCodec;
invoke-virtual {v0, v1, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
.line 794
:cond_1c8
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Thread;->getContextClassLoader()Ljava/lang/ClassLoader;
move-result-object v3
.line 796
:try_start_1d0
const-class v5, Lcom/alibaba/fastjson/parser/deserializer/AutowiredObjectDeserializer;
invoke-static {v5, v3}, Lcom/alibaba/fastjson/util/ServiceLoader;->load(Ljava/lang/Class;Ljava/lang/ClassLoader;)Ljava/util/Set;
move-result-object v3
invoke-interface {v3}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v3
:cond_1da
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v5
if-eqz v5, :cond_1fe
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v5
check-cast v5, Lcom/alibaba/fastjson/parser/deserializer/AutowiredObjectDeserializer;
.line 798
invoke-interface {v5}, Lcom/alibaba/fastjson/parser/deserializer/AutowiredObjectDeserializer;->getAutowiredFor()Ljava/util/Set;
move-result-object v6
invoke-interface {v6}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v6
:goto_1ee
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v7
if-eqz v7, :cond_1da
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v7
check-cast v7, Ljava/lang/reflect/Type;
.line 799
invoke-virtual {v0, v7, v5}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:try_end_1fd
.catch Ljava/lang/Exception; {:try_start_1d0 .. :try_end_1fd} :catch_1fe
goto :goto_1ee
:catch_1fe
:cond_1fe
if-nez v4, :cond_204
.line 807
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v4
:cond_204
if-eqz v4, :cond_207
return-object v4
.line 814
:cond_207
invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->isEnum()Z
move-result v3
if-eqz v3, :cond_278
.line 815
iget-boolean v3, v0, Lcom/alibaba/fastjson/parser/ParserConfig;->jacksonCompatible:Z
if-eqz v3, :cond_22b
.line 816
invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->getMethods()[Ljava/lang/reflect/Method;
move-result-object v3
.line 817
array-length v4, v3
:goto_216
if-ge v8, v4, :cond_22b
aget-object v5, v3, v8
.line 818
invoke-static {v5}, Lcom/alibaba/fastjson/util/TypeUtils;->isJacksonCreator(Ljava/lang/reflect/Method;)Z
move-result v5
if-eqz v5, :cond_228
.line 819
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->createJavaBeanDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v1
.line 820
invoke-virtual {v0, v2, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
return-object v1
:cond_228
add-int/lit8 v8, v8, 0x1
goto :goto_216
.line 826
:cond_22b
invoke-static/range {p1 .. p1}, Lcom/alibaba/fastjson/JSON;->getMixInAnnotations(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v3
check-cast v3, Ljava/lang/Class;
if-eqz v3, :cond_235
move-object v4, v3
goto :goto_236
:cond_235
move-object v4, v1
.line 829
:goto_236
const-class v5, Lcom/alibaba/fastjson/annotation/JSONType;
invoke-static {v4, v5}, Lcom/alibaba/fastjson/util/TypeUtils;->getAnnotation(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
move-result-object v4
check-cast v4, Lcom/alibaba/fastjson/annotation/JSONType;
if-eqz v4, :cond_24e
.line 832
invoke-interface {v4}, Lcom/alibaba/fastjson/annotation/JSONType;->deserializer()Ljava/lang/Class;
move-result-object v4
.line 834
:try_start_244
invoke-virtual {v4}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v4
check-cast v4, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.line 835
invoke-virtual {v0, v1, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:try_end_24d
.catchall {:try_start_244 .. :try_end_24d} :catchall_24e
return-object v4
:catchall_24e
:cond_24e
const/4 v4, 0x0
if-eqz v3, :cond_264
.line 844
invoke-static {v3, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getEnumCreator(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v3
if-eqz v3, :cond_268
.line 847
:try_start_257
invoke-virtual {v3}, Ljava/lang/reflect/Method;->getName()Ljava/lang/String;
move-result-object v5
invoke-virtual {v3}, Ljava/lang/reflect/Method;->getParameterTypes()[Ljava/lang/Class;
move-result-object v3
invoke-virtual {v1, v5, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v4
:try_end_263
.catch Ljava/lang/Exception; {:try_start_257 .. :try_end_263} :catch_268
goto :goto_268
.line 853
:cond_264
invoke-static {v1, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getEnumCreator(Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v4
:catch_268
:cond_268
:goto_268
if-eqz v4, :cond_273
.line 857
new-instance v2, Lcom/alibaba/fastjson/parser/deserializer/EnumCreatorDeserializer;
invoke-direct {v2, v4}, Lcom/alibaba/fastjson/parser/deserializer/EnumCreatorDeserializer;-><init>(Ljava/lang/reflect/Method;)V
.line 858
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
return-object v2
.line 862
:cond_273
invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getEnumDeserializer(Ljava/lang/Class;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v1
goto :goto_2d7
.line 863
:cond_278
invoke-virtual/range {p1 .. p1}, Ljava/lang/Class;->isArray()Z
move-result v3
if-eqz v3, :cond_281
.line 864
sget-object v1, Lcom/alibaba/fastjson/serializer/ObjectArrayCodec;->instance:Lcom/alibaba/fastjson/serializer/ObjectArrayCodec;
goto :goto_2d7
.line 865
:cond_281
const-class v3, Ljava/util/Set;
if-eq v1, v3, :cond_2d5
const-class v3, Ljava/util/HashSet;
if-eq v1, v3, :cond_2d5
const-class v3, Ljava/util/Collection;
if-eq v1, v3, :cond_2d5
const-class v3, Ljava/util/List;
if-eq v1, v3, :cond_2d5
const-class v3, Ljava/util/ArrayList;
if-ne v1, v3, :cond_296
goto :goto_2d5
.line 868
:cond_296
const-class v3, Ljava/util/Collection;
invoke-virtual {v3, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_2a1
.line 869
sget-object v1, Lcom/alibaba/fastjson/serializer/CollectionCodec;->instance:Lcom/alibaba/fastjson/serializer/CollectionCodec;
goto :goto_2d7
.line 870
:cond_2a1
const-class v3, Ljava/util/Map;
invoke-virtual {v3, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_2ac
.line 871
sget-object v1, Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/MapDeserializer;
goto :goto_2d7
.line 872
:cond_2ac
const-class v3, Ljava/lang/Throwable;
invoke-virtual {v3, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_2bb
.line 873
new-instance v3, Lcom/alibaba/fastjson/parser/deserializer/ThrowableDeserializer;
invoke-direct {v3, v0, v1}, Lcom/alibaba/fastjson/parser/deserializer/ThrowableDeserializer;-><init>(Lcom/alibaba/fastjson/parser/ParserConfig;Ljava/lang/Class;)V
:goto_2b9
move-object v1, v3
goto :goto_2d7
.line 874
:cond_2bb
const-class v3, Lcom/alibaba/fastjson/parser/deserializer/PropertyProcessable;
invoke-virtual {v3, v1}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z
move-result v3
if-eqz v3, :cond_2c9
.line 875
new-instance v3, Lcom/alibaba/fastjson/parser/deserializer/PropertyProcessableDeserializer;
invoke-direct {v3, v1}, Lcom/alibaba/fastjson/parser/deserializer/PropertyProcessableDeserializer;-><init>(Ljava/lang/Class;)V
goto :goto_2b9
.line 876
:cond_2c9
const-class v3, Ljava/net/InetAddress;
if-ne v1, v3, :cond_2d0
.line 877
sget-object v1, Lcom/alibaba/fastjson/serializer/MiscCodec;->instance:Lcom/alibaba/fastjson/serializer/MiscCodec;
goto :goto_2d7
.line 879
:cond_2d0
invoke-virtual {v0, v1, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->createJavaBeanDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v1
goto :goto_2d7
.line 867
:cond_2d5
:goto_2d5
sget-object v1, Lcom/alibaba/fastjson/serializer/CollectionCodec;->instance:Lcom/alibaba/fastjson/serializer/CollectionCodec;
.line 882
:goto_2d7
invoke-virtual {v0, v2, v1}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
return-object v1
.end method
.method public getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.registers 4
.line 578
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->get(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v0
if-eqz v0, :cond_7
return-object v0
.line 583
:cond_7
instance-of v0, p1, Ljava/lang/Class;
if-eqz v0, :cond_13
.line 584
move-object v0, p1
check-cast v0, Ljava/lang/Class;
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object p1
return-object p1
.line 587
:cond_13
instance-of v0, p1, Ljava/lang/reflect/ParameterizedType;
if-eqz v0, :cond_2e
.line 588
move-object v0, p1
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getRawType()Ljava/lang/reflect/Type;
move-result-object v0
.line 589
instance-of v1, v0, Ljava/lang/Class;
if-eqz v1, :cond_29
.line 590
check-cast v0, Ljava/lang/Class;
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object p1
return-object p1
.line 592
:cond_29
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object p1
return-object p1
.line 596
:cond_2e
instance-of v0, p1, Ljava/lang/reflect/WildcardType;
if-eqz v0, :cond_44
.line 597
check-cast p1, Ljava/lang/reflect/WildcardType;
.line 598
invoke-interface {p1}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object p1
.line 599
array-length v0, p1
const/4 v1, 0x1
if-ne v0, v1, :cond_44
const/4 v0, 0x0
.line 600
aget-object p1, p1, v0
.line 601
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object p1
return-object p1
.line 605
:cond_44
sget-object p1, Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/JavaObjectDeserializer;
return-object p1
.end method
.method public getDeserializers()Lcom/alibaba/fastjson/util/IdentityHashMap;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Lcom/alibaba/fastjson/util/IdentityHashMap<",
"Ljava/lang/reflect/Type;",
"Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;",
">;"
}
.end annotation
.line 574
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
return-object v0
.end method
.method protected getEnumDeserializer(Ljava/lang/Class;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)",
"Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;"
}
.end annotation
.line 914
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/EnumDeserializer;
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/parser/deserializer/EnumDeserializer;-><init>(Ljava/lang/Class;)V
return-object v0
.end method
.method public varargs initJavaBeanDeserializers([Ljava/lang/Class;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"([",
"Ljava/lang/Class<",
"*>;)V"
}
.end annotation
if-nez p1, :cond_3
return-void
.line 926
:cond_3
array-length v0, p1
const/4 v1, 0x0
:goto_5
if-ge v1, v0, :cond_16
aget-object v2, p1, v1
if-nez v2, :cond_c
goto :goto_13
.line 930
:cond_c
invoke-virtual {p0, v2, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->createJavaBeanDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v3
.line 931
invoke-virtual {p0, v2, v3}, Lcom/alibaba/fastjson/parser/ParserConfig;->putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
:goto_13
add-int/lit8 v1, v1, 0x1
goto :goto_5
:cond_16
return-void
.end method
.method public isAsmEnable()Z
.registers 2
.line 559
iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->asmEnable:Z
return v0
.end method
.method public isAutoTypeSupport()Z
.registers 2
.line 551
iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeSupport:Z
return v0
.end method
.method public isJacksonCompatible()Z
.registers 2
.line 1560
iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->jacksonCompatible:Z
return v0
.end method
.method public isPrimitive(Ljava/lang/Class;)Z
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;)Z"
}
.end annotation
.line 1143
invoke-static {p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->isPrimitive2(Ljava/lang/Class;)Z
move-result p1
return p1
.end method
.method public isSafeMode()Z
.registers 2
.line 540
iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->safeMode:Z
return v0
.end method
.method public putDeserializer(Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;)V
.registers 6
.line 1109
invoke-static {p1}, Lcom/alibaba/fastjson/JSON;->getMixInAnnotations(Ljava/lang/reflect/Type;)Ljava/lang/reflect/Type;
move-result-object v0
if-eqz v0, :cond_1f
.line 1111
iget-object v1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->mixInDeserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
invoke-virtual {v1, p1}, Lcom/alibaba/fastjson/util/IdentityHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Lcom/alibaba/fastjson/util/IdentityHashMap;
if-nez v1, :cond_1b
.line 1114
new-instance v1, Lcom/alibaba/fastjson/util/IdentityHashMap;
const/4 v2, 0x4
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/util/IdentityHashMap;-><init>(I)V
.line 1115
iget-object v2, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->mixInDeserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
invoke-virtual {v2, p1, v1}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
.line 1117
:cond_1b
invoke-virtual {v1, v0, p2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
goto :goto_24
.line 1119
:cond_1f
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->deserializers:Lcom/alibaba/fastjson/util/IdentityHashMap;
invoke-virtual {v0, p1, p2}, Lcom/alibaba/fastjson/util/IdentityHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Z
:goto_24
return-void
.end method
.method public register(Lcom/alibaba/fastjson/spi/Module;)V
.registers 3
.line 1572
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->modules:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method public register(Ljava/lang/String;Ljava/lang/Class;)V
.registers 4
.line 1568
iget-object v0, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->typeMapping:Ljava/util/concurrent/ConcurrentMap;
invoke-interface {v0, p1, p2}, Ljava/util/concurrent/ConcurrentMap;->putIfAbsent(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
return-void
.end method
.method public setAsmEnable(Z)V
.registers 2
.line 563
iput-boolean p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->asmEnable:Z
return-void
.end method
.method public setAutoTypeSupport(Z)V
.registers 2
.line 555
iput-boolean p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->autoTypeSupport:Z
return-void
.end method
.method public setDefaultClassLoader(Ljava/lang/ClassLoader;)V
.registers 2
.line 1240
iput-object p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->defaultClassLoader:Ljava/lang/ClassLoader;
return-void
.end method
.method public setJacksonCompatible(Z)V
.registers 2
.line 1564
iput-boolean p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->jacksonCompatible:Z
return-void
.end method
.method public setSafeMode(Z)V
.registers 2
.line 547
iput-boolean p1, p0, Lcom/alibaba/fastjson/parser/ParserConfig;->safeMode:Z
return-void
.end method