DefaultJSONParser.smali
.class public Lcom/alibaba/fastjson/parser/DefaultJSONParser;
.super Ljava/lang/Object;
.source "DefaultJSONParser.java"
# interfaces
.implements Ljava/io/Closeable;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
}
.end annotation
# static fields
.field public static final NONE:I = 0x0
.field public static final NeedToResolve:I = 0x1
.field public static final TypeNameRedirect:I = 0x2
# instance fields
.field public config:Lcom/alibaba/fastjson/parser/ParserConfig;
.field protected contex:Lcom/alibaba/fastjson/parser/ParseContext;
.field private contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
.field private contextArrayIndex:I
.field private dateFormat:Ljava/text/DateFormat;
.field private dateFormatPattern:Ljava/lang/String;
.field protected extraProcessors:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;",
">;"
}
.end annotation
.end field
.field protected extraTypeProviders:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;",
">;"
}
.end annotation
.end field
.field public fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
.field public final lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
.field public resolveStatus:I
.field private resolveTaskList:Ljava/util/List;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;",
">;"
}
.end annotation
.end field
.field public final symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
# direct methods
.method public constructor <init>(Lcom/alibaba/fastjson/parser/JSONLexer;)V
.registers 3
.line 5
sget-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->global:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
return-void
.end method
.method public constructor <init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.registers 5
.line 6
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 7
sget-object v0, Lcom/alibaba/fastjson/JSON;->DEFFAULT_DATE_FORMAT:Ljava/lang/String;
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
const/4 v0, 0x0
.line 8
iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
.line 9
iput v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
const/4 v0, 0x0
.line 10
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
.line 11
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
.line 12
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
.line 13
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
.line 14
iput-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
.line 15
iget-object p2, p2, Lcom/alibaba/fastjson/parser/ParserConfig;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
iput-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
.line 16
iget-char p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v0, 0x1a
const/16 v1, 0x7b
if-ne p2, v1, :cond_3b
.line 17
iget p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p2, p2, 0x1
iput p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 18
iget v1, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v1, :cond_2e
goto :goto_34
:cond_2e
iget-object v0, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 19
invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_34
iput-char v0, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 p2, 0xc
.line 20
iput p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_5a
:cond_3b
const/16 v1, 0x5b
if-ne p2, v1, :cond_57
.line 21
iget p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 p2, p2, 0x1
iput p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 22
iget v1, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt p2, v1, :cond_4a
goto :goto_50
:cond_4a
iget-object v0, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 23
invoke-virtual {v0, p2}, Ljava/lang/String;->charAt(I)C
move-result v0
:goto_50
iput-char v0, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 p2, 0xe
.line 24
iput p2, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_5a
.line 25
:cond_57
invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:goto_5a
return-void
.end method
.method public constructor <init>(Ljava/lang/String;)V
.registers 4
.line 1
sget-object v0, Lcom/alibaba/fastjson/parser/ParserConfig;->global:Lcom/alibaba/fastjson/parser/ParserConfig;
sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {p0, p1, v0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;I)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;)V
.registers 5
.line 2
new-instance v0, Lcom/alibaba/fastjson/parser/JSONLexer;
sget v1, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I
invoke-direct {v0, p1, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>(Ljava/lang/String;I)V
invoke-direct {p0, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Lcom/alibaba/fastjson/parser/ParserConfig;I)V
.registers 5
.line 3
new-instance v0, Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-direct {v0, p1, p3}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>(Ljava/lang/String;I)V
invoke-direct {p0, v0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
return-void
.end method
.method public constructor <init>([CILcom/alibaba/fastjson/parser/ParserConfig;I)V
.registers 6
.line 4
new-instance v0, Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-direct {v0, p1, p2, p4}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>([CII)V
invoke-direct {p0, v0, p3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;-><init>(Lcom/alibaba/fastjson/parser/JSONLexer;Lcom/alibaba/fastjson/parser/ParserConfig;)V
return-void
.end method
# virtual methods
.method public final accept(I)V
.registers 5
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v1, p1, :cond_a
.line 2
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-void
.line 3
:cond_a
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "syntax error, expect "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object p1
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, ", actual "
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget p1, p1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 4
invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)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}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method protected addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
.registers 4
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
if-nez v0, :cond_c
.line 2
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
.line 3
:cond_c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
return-void
.end method
.method protected checkListResolve(Ljava/util/Collection;)V
.registers 6
.line 1
instance-of v0, p1, Ljava/util/List;
const/4 v1, 0x0
if-eqz v0, :cond_20
.line 2
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
move-result-object v0
.line 3
new-instance v2, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;
move-object v3, p1
check-cast v3, Ljava/util/List;
invoke-interface {p1}, Ljava/util/Collection;->size()I
move-result p1
add-int/lit8 p1, p1, -0x1
invoke-direct {v2, p0, v3, p1}, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;-><init>(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/util/List;I)V
iput-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
.line 4
iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
iput-object p1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
.line 5
iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
goto :goto_31
.line 6
:cond_20
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
move-result-object v0
.line 7
new-instance v2, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;
invoke-direct {v2, p1}, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;-><init>(Ljava/util/Collection;)V
iput-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
.line 8
iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
iput-object p1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
.line 9
iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
:goto_31
return-void
.end method
.method protected checkMapResolve(Ljava/util/Map;Ljava/lang/Object;)V
.registers 4
.line 1
new-instance v0, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;
invoke-direct {v0, p1, p2}, Lcom/alibaba/fastjson/parser/ResolveFieldDeserializer;-><init>(Ljava/util/Map;Ljava/lang/Object;)V
.line 2
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
move-result-object p1
.line 3
iput-object v0, p1, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
.line 4
iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
iput-object p2, p1, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
const/4 p1, 0x0
.line 5
iput p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
return-void
.end method
.method public close()V
.registers 4
.line 1
:try_start_0
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
:try_end_4
.catchall {:try_start_0 .. :try_end_4} :catchall_2d
const/16 v1, 0x14
if-ne v0, v1, :cond_e
.line 2
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
return-void
.line 3
:cond_e
:try_start_e
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "not close json text, token : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
invoke-static {v2}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_2d
.catchall {:try_start_e .. :try_end_2d} :catchall_2d
:catchall_2d
move-exception v0
.line 4
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
.line 5
throw v0
.end method
.method public config(Lcom/alibaba/fastjson/parser/Feature;Z)V
.registers 4
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->config(Lcom/alibaba/fastjson/parser/Feature;Z)V
return-void
.end method
.method public getDateFomartPattern()Ljava/lang/String;
.registers 2
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
return-object v0
.end method
.method public getDateFormat()Ljava/text/DateFormat;
.registers 4
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
if-nez v0, :cond_1a
.line 2
new-instance v0, Ljava/text/SimpleDateFormat;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->locale:Ljava/util/Locale;
invoke-direct {v0, v1, v2}, Ljava/text/SimpleDateFormat;-><init>(Ljava/lang/String;Ljava/util/Locale;)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
.line 3
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v1, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->timeZone:Ljava/util/TimeZone;
invoke-virtual {v0, v1}, Ljava/text/DateFormat;->setTimeZone(Ljava/util/TimeZone;)V
.line 4
:cond_1a
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
return-object v0
.end method
.method public getExtraProcessors()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraProcessor;",
">;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
if-nez v0, :cond_c
.line 2
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
.line 3
:cond_c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraProcessors:Ljava/util/List;
return-object v0
.end method
.method public getExtraTypeProviders()Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List<",
"Lcom/alibaba/fastjson/parser/deserializer/ExtraTypeProvider;",
">;"
}
.end annotation
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
if-nez v0, :cond_c
.line 2
new-instance v0, Ljava/util/ArrayList;
const/4 v1, 0x2
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
.line 3
:cond_c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->extraTypeProviders:Ljava/util/List;
return-object v0
.end method
.method protected getLastResolveTask()Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
.registers 3
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
add-int/lit8 v1, v1, -0x1
invoke-interface {v0, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
return-object v0
.end method
.method public handleResovleTask(Ljava/lang/Object;)V
.registers 10
.line 1
iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
if-nez p1, :cond_5
return-void
.line 2
:cond_5
invoke-interface {p1}, Ljava/util/List;->size()I
move-result p1
const/4 v0, 0x0
const/4 v1, 0x0
:goto_b
if-ge v1, p1, :cond_57
.line 3
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveTaskList:Ljava/util/List;
invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;
move-result-object v2
check-cast v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
.line 4
iget-object v3, v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->fieldDeserializer:Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
if-nez v3, :cond_1a
goto :goto_54
.line 5
:cond_1a
iget-object v4, v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->ownerContext:Lcom/alibaba/fastjson/parser/ParseContext;
const/4 v5, 0x0
if-eqz v4, :cond_22
.line 6
iget-object v4, v4, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
goto :goto_23
:cond_22
move-object v4, v5
.line 7
:goto_23
# getter for: Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->referenceValue:Ljava/lang/String;
invoke-static {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->access$000(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)Ljava/lang/String;
move-result-object v6
const-string v7, "$"
.line 8
invoke-virtual {v6, v7}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
move-result v7
if-eqz v7, :cond_4b
const/4 v2, 0x0
.line 9
:goto_30
iget v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
if-ge v2, v7, :cond_51
.line 10
iget-object v7, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
aget-object v7, v7, v2
invoke-virtual {v7}, Lcom/alibaba/fastjson/parser/ParseContext;->toString()Ljava/lang/String;
move-result-object v7
invoke-virtual {v6, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_48
.line 11
iget-object v5, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
aget-object v5, v5, v2
iget-object v5, v5, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
:cond_48
add-int/lit8 v2, v2, 0x1
goto :goto_30
.line 12
:cond_4b
# getter for: Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->context:Lcom/alibaba/fastjson/parser/ParseContext;
invoke-static {v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;->access$100(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v2
iget-object v5, v2, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
.line 13
:cond_51
invoke-virtual {v3, v4, v5}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
:goto_54
add-int/lit8 v1, v1, 0x1
goto :goto_b
:cond_57
return-void
.end method
.method public parse()Ljava/lang/Object;
.registers 2
const/4 v0, 0x0
.line 1
invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
return-object v0
.end method
.method public parse(Ljava/lang/Object;)Ljava/lang/Object;
.registers 8
.line 2
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/4 v2, 0x2
if-eq v1, v2, :cond_13f
const/4 v3, 0x3
const/4 v4, 0x1
if-eq v1, v3, :cond_128
const/4 v3, 0x4
const/16 v5, 0x10
if-eq v1, v3, :cond_f5
const/16 v3, 0xc
if-eq v1, v3, :cond_d7
const/16 v3, 0xe
if-eq v1, v3, :cond_ce
const/4 v3, 0x0
const-string v4, "syntax error, "
packed-switch v1, :pswitch_data_14a
packed-switch v1, :pswitch_data_156
.line 3
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, 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-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.line 4
:pswitch_3c
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 5
new-instance v0, Ljava/util/TreeSet;
invoke-direct {v0}, Ljava/util/TreeSet;-><init>()V
.line 6
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
return-object v0
.line 7
:pswitch_48
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 8
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
.line 9
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
return-object v0
.line 10
:pswitch_54
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->isBlankInput()Z
move-result p1
if-eqz p1, :cond_5b
return-object v3
.line 11
:cond_5b
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, 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-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
:pswitch_76
const/16 p1, 0x12
.line 12
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 13
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v1, p1, :cond_a1
const/16 p1, 0xa
.line 14
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 15
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
.line 16
iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Number;->longValue()J
move-result-wide v0
.line 17
invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
const/16 p1, 0xb
.line 18
invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->accept(I)V
.line 19
new-instance p1, Ljava/util/Date;
invoke-direct {p1, v0, v1}, Ljava/util/Date;-><init>(J)V
return-object p1
.line 20
:cond_a1
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, 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-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.line 21
:pswitch_bc
iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-object v3
.line 22
:pswitch_c2
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 23
sget-object p1, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
return-object p1
.line 24
:pswitch_c8
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 25
sget-object p1, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
return-object p1
.line 26
:cond_ce
new-instance v0, Lcom/alibaba/fastjson/JSONArray;
invoke-direct {v0}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
.line 27
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
return-object v0
.line 28
:cond_d7
iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
iget v1, v1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v0, v1
if-eqz v0, :cond_eb
new-instance v0, Lcom/alibaba/fastjson/JSONObject;
new-instance v1, Ljava/util/LinkedHashMap;
invoke-direct {v1}, Ljava/util/LinkedHashMap;-><init>()V
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONObject;-><init>(Ljava/util/Map;)V
goto :goto_f0
:cond_eb
new-instance v0, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v0}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
.line 29
:goto_f0
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.line 30
:cond_f5
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object p1
.line 31
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 32
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
iget v1, v1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v0, v1
if-eqz v0, :cond_127
.line 33
new-instance v0, Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>(Ljava/lang/String;)V
.line 34
:try_start_10e
invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(Z)Z
move-result v1
if-eqz v1, :cond_11e
.line 35
iget-object p1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {p1}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object p1
:try_end_11a
.catchall {:try_start_10e .. :try_end_11a} :catchall_122
.line 36
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
return-object p1
:cond_11e
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
goto :goto_127
:catchall_122
move-exception p1
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
.line 37
throw p1
:cond_127
:goto_127
return-object p1
.line 38
:cond_128
iget p1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
iget v0, v0, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr p1, v0
if-eqz p1, :cond_132
goto :goto_133
:cond_132
const/4 v4, 0x0
.line 39
:goto_133
iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {p1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object p1
.line 40
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-object p1
.line 41
:cond_13f
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object p1
.line 42
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-object p1
nop
:pswitch_data_14a
.packed-switch 0x6
:pswitch_c8
:pswitch_c2
:pswitch_bc
:pswitch_76
.end packed-switch
:pswitch_data_156
.packed-switch 0x14
:pswitch_54
:pswitch_48
:pswitch_3c
:pswitch_bc
.end packed-switch
.end method
.method public parseArray(Ljava/lang/Class;)Ljava/util/List;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)",
"Ljava/util/List<",
"TT;>;"
}
.end annotation
.line 1
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 2
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
return-object v0
.end method
.method public parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/Class<",
"*>;",
"Ljava/util/Collection;",
")V"
}
.end annotation
.line 3
invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
return-void
.end method
.method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
.registers 4
const/4 v0, 0x0
.line 4
invoke-virtual {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V
return-void
.end method
.method public parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;Ljava/lang/Object;)V
.registers 11
.line 5
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v1, 0x15
if-eq v0, v1, :cond_c
const/16 v1, 0x16
if-ne v0, v1, :cond_11
.line 6
:cond_c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 7
:cond_11
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v2, 0xe
if-ne v1, v2, :cond_cf
.line 8
sget-object v1, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v2, 0x4
if-ne v1, p1, :cond_25
.line 9
sget-object v1, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
const/4 v3, 0x2
.line 10
invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_3c
.line 11
:cond_25
const-class v1, Ljava/lang/String;
if-ne v1, p1, :cond_2f
.line 12
sget-object v1, Lcom/alibaba/fastjson/serializer/StringCodec;->instance:Lcom/alibaba/fastjson/serializer/StringCodec;
.line 13
invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_3c
.line 14
:cond_2f
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v1
.line 15
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/16 v3, 0xc
invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 16
:goto_3c
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
.line 17
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-boolean v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z
if-nez v3, :cond_47
.line 18
invoke-virtual {p0, v0, p2, p3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
:cond_47
const/4 p3, 0x0
.line 19
:goto_48
:try_start_48
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v4, 0x10
if-ne v3, v4, :cond_56
.line 20
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
goto :goto_48
.line 21
:cond_56
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
:try_end_5a
.catchall {:try_start_48 .. :try_end_5a} :catchall_cb
const/16 v5, 0xf
if-ne v3, v5, :cond_66
.line 22
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
.line 23
iget-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {p1, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
return-void
.line 24
:cond_66
:try_start_66
sget-object v3, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v5, 0x0
if-ne v3, p1, :cond_75
.line 25
sget-object v3, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
invoke-virtual {v3, p0, v5, v5}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
.line 26
invoke-interface {p2, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
goto :goto_bc
.line 27
:cond_75
const-class v3, Ljava/lang/String;
if-ne v3, p1, :cond_9b
.line 28
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v3, v2, :cond_8b
.line 29
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v3
.line 30
iget-object v5, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v5, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_97
.line 31
:cond_8b
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v3
if-nez v3, :cond_92
goto :goto_96
.line 32
:cond_92
invoke-virtual {v3}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v5
:goto_96
move-object v3, v5
.line 33
:goto_97
invoke-interface {p2, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
goto :goto_bc
.line 34
:cond_9b
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v6, 0x8
if-ne v3, v6, :cond_a9
.line 35
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
goto :goto_b1
.line 36
:cond_a9
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-interface {v1, p0, p1, v3}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
.line 37
:goto_b1
invoke-interface {p2, v5}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 38
iget v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
const/4 v5, 0x1
if-ne v3, v5, :cond_bc
.line 39
invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
.line 40
:cond_bc
:goto_bc
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v3, v4, :cond_c7
.line 41
iget-object v3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:try_end_c7
.catchall {:try_start_66 .. :try_end_c7} :catchall_cb
:cond_c7
add-int/lit8 p3, p3, 0x1
goto/16 :goto_48
:catchall_cb
move-exception p1
.line 42
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
.line 43
throw p1
.line 44
:cond_cf
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string p3, "exepct \'[\', but "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget p3, p3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
invoke-static {p3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p3, ", "
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {p3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object p3
invoke-virtual {p2, p3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_fd
:goto_fc
throw p1
:goto_fd
goto :goto_fc
.end method
.method public final parseArray(Ljava/util/Collection;)V
.registers 3
const/4 v0, 0x0
.line 97
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
return-void
.end method
.method public final parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.registers 19
move-object/from16 v1, p0
move-object/from16 v0, p1
.line 98
iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v3, 0x15
if-eq v2, v3, :cond_10
const/16 v3, 0x16
if-ne v2, v3, :cond_19
.line 99
:cond_10
iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 100
iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
:cond_19
const/16 v3, 0xe
if-ne v2, v3, :cond_286
.line 101
iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-boolean v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z
.line 102
iget-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
if-nez v2, :cond_2a
move-object/from16 v5, p2
.line 103
invoke-virtual {v1, v4, v0, v5}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.line 104
:cond_2a
:try_start_2a
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-char v5, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v6, 0x7b
const/16 v7, 0x5d
const/4 v9, 0x4
const/16 v10, 0xc
const/16 v12, 0x22
const/16 v13, 0x10
const/4 v14, 0x1
if-eq v5, v12, :cond_77
if-ne v5, v7, :cond_4d
.line 105
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 106
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_48
.catchall {:try_start_2a .. :try_end_48} :catchall_280
if-nez v2, :cond_4c
.line 107
iput-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_4c
return-void
:cond_4d
if-ne v5, v6, :cond_70
.line 108
:try_start_4f
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v15, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v15, v14
iput v15, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 109
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v8, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v8, v8, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v15, v8, :cond_61
const/16 v8, 0x1a
goto :goto_69
:cond_61
iget-object v8, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v8, v8, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 110
invoke-virtual {v8, v15}, Ljava/lang/String;->charAt(I)C
move-result v8
:goto_69
iput-char v8, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 111
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iput v10, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_75
.line 112
:cond_70
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v5, v10}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:goto_75
const/4 v5, 0x0
goto :goto_8a
.line 113
:cond_77
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v5, v5, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
iget v8, v8, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v5, v8
if-nez v5, :cond_84
const/4 v5, 0x1
goto :goto_8a
.line 114
:cond_84
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v5, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_75
:goto_8a
const/4 v8, 0x0
:goto_8b
if-eqz v5, :cond_10c
.line 115
iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-char v15, v15, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v15, v12, :cond_10c
.line 116
iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v15, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanStringValue(C)Ljava/lang/String;
move-result-object v15
.line 117
iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-char v6, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v11, 0x2c
if-ne v6, v11, :cond_d5
.line 118
iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v11, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v11, v14
iput v11, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 119
iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v11, v3, :cond_b3
const/16 v3, 0x1a
goto :goto_bb
:cond_b3
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 120
invoke-virtual {v3, v11}, Ljava/lang/String;->charAt(I)C
move-result v3
:goto_bb
iput-char v3, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 121
invoke-interface {v0, v15}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 122
iget v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
if-ne v6, v14, :cond_c7
.line 123
invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
:cond_c7
if-ne v3, v12, :cond_ce
const/4 v11, 0x0
:cond_ca
:goto_ca
const/16 v15, 0x7b
goto/16 :goto_276
.line 124
:cond_ce
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
const/4 v5, 0x0
goto :goto_10c
:cond_d5
if-ne v6, v7, :cond_107
.line 125
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v5, v14
iput v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 126
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v6, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v6, :cond_e9
const/16 v8, 0x1a
goto :goto_f1
:cond_e9
iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v6, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 127
invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C
move-result v8
:goto_f1
iput-char v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 128
invoke-interface {v0, v15}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 129
iget v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
if-ne v3, v14, :cond_fd
.line 130
invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
.line 131
:cond_fd
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_102
.catchall {:try_start_4f .. :try_end_102} :catchall_280
if-nez v2, :cond_106
.line 132
iput-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_106
return-void
.line 133
:cond_107
:try_start_107
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 134
:cond_10c
:goto_10c
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
:goto_110
if-ne v3, v13, :cond_11c
.line 135
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 136
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_110
:cond_11c
const/4 v6, 0x2
const/4 v11, 0x0
if-eq v3, v6, :cond_202
const/4 v6, 0x3
if-eq v3, v6, :cond_1e0
if-eq v3, v9, :cond_1b2
const/4 v6, 0x6
if-eq v3, v6, :cond_1a8
const/4 v6, 0x7
if-eq v3, v6, :cond_19e
const/16 v6, 0x8
if-eq v3, v6, :cond_196
if-eq v3, v10, :cond_170
const/16 v6, 0x14
if-eq v3, v6, :cond_168
const/16 v6, 0x17
if-eq v3, v6, :cond_160
const/16 v6, 0xe
if-eq v3, v6, :cond_153
const/16 v11, 0xf
if-eq v3, v11, :cond_149
.line 137
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v11
:cond_145
:goto_145
move-object v3, v11
const/4 v11, 0x0
goto/16 :goto_210
.line 138
:cond_149
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_14e
.catchall {:try_start_107 .. :try_end_14e} :catchall_280
if-nez v2, :cond_152
.line 139
iput-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_152
return-void
.line 140
:cond_153
:try_start_153
new-instance v11, Lcom/alibaba/fastjson/JSONArray;
invoke-direct {v11}, Lcom/alibaba/fastjson/JSONArray;-><init>()V
.line 141
invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v3
invoke-virtual {v1, v11, v3}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
goto :goto_145
:cond_160
const/16 v6, 0xe
.line 142
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_145
.line 143
:cond_168
new-instance v0, Lcom/alibaba/fastjson/JSONException;
const-string v3, "unclosed jsonArray"
invoke-direct {v0, v3}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_170
const/16 v6, 0xe
.line 144
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v11, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
iget v11, v11, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v3, v11
if-eqz v3, :cond_188
.line 145
new-instance v3, Lcom/alibaba/fastjson/JSONObject;
new-instance v11, Ljava/util/LinkedHashMap;
invoke-direct {v11}, Ljava/util/LinkedHashMap;-><init>()V
invoke-direct {v3, v11}, Lcom/alibaba/fastjson/JSONObject;-><init>(Ljava/util/Map;)V
goto :goto_18d
.line 146
:cond_188
new-instance v3, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v3}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
.line 147
:goto_18d
invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v11
invoke-virtual {v1, v3, v11}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v11
goto :goto_145
:cond_196
const/16 v6, 0xe
.line 148
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_145
:cond_19e
const/16 v6, 0xe
.line 149
sget-object v11, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
.line 150
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_145
:cond_1a8
const/16 v6, 0xe
.line 151
sget-object v11, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
.line 152
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_145
:cond_1b2
const/16 v6, 0xe
.line 153
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v11
.line 154
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 155
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v15, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
iget v15, v15, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v3, v15
if-eqz v3, :cond_145
.line 156
new-instance v3, Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-direct {v3, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>(Ljava/lang/String;)V
.line 157
invoke-virtual {v3, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(Z)Z
move-result v15
if-eqz v15, :cond_1db
.line 158
iget-object v11, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v11}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v11
.line 159
:cond_1db
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
goto/16 :goto_145
:cond_1e0
const/16 v6, 0xe
.line 160
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v11, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature;
iget v11, v11, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v3, v11
if-eqz v3, :cond_1f5
.line 161
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v3
const/4 v11, 0x0
goto :goto_1fc
.line 162
:cond_1f5
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/4 v11, 0x0
invoke-virtual {v3, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v3
.line 163
:goto_1fc
iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v15, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_210
:cond_202
const/16 v6, 0xe
const/4 v11, 0x0
.line 164
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v3
.line 165
iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v15, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 166
:goto_210
invoke-interface {v0, v3}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z
.line 167
iget v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
if-ne v3, v14, :cond_21a
.line 168
invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkListResolve(Ljava/util/Collection;)V
.line 169
:cond_21a
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v3, v13, :cond_ca
.line 170
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-char v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v3, v12, :cond_235
.line 171
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v15, v15, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
.line 172
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V
goto/16 :goto_ca
:cond_235
const/16 v15, 0x30
if-lt v3, v15, :cond_24c
const/16 v15, 0x39
if-gt v3, v15, :cond_24c
.line 173
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v15, v15, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
iput v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
.line 174
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
goto/16 :goto_ca
:cond_24c
const/16 v15, 0x7b
if-ne v3, v15, :cond_271
.line 175
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iput v10, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 176
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/2addr v6, v14
iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 177
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v7, v7, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v7, :cond_266
const/16 v6, 0x1a
goto :goto_26e
:cond_266
iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v7, v7, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 178
invoke-virtual {v7, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_26e
iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_276
.line 179
:cond_271
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:try_end_276
.catchall {:try_start_153 .. :try_end_276} :catchall_280
:goto_276
add-int/lit8 v8, v8, 0x1
const/16 v3, 0xe
const/16 v6, 0x7b
const/16 v7, 0x5d
goto/16 :goto_8b
:catchall_280
move-exception v0
if-nez v2, :cond_285
.line 180
iput-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
.line 181
:cond_285
throw v0
.line 182
:cond_286
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "syntax error, expect [, actual "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {v2}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v2, ", pos "
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_2ae
:goto_2ad
throw v0
:goto_2ae
goto :goto_2ad
.end method
.method public parseArray([Ljava/lang/reflect/Type;)[Ljava/lang/Object;
.registers 18
move-object/from16 v0, p0
move-object/from16 v1, p1
.line 45
iget-object v2, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v3, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v4, 0x8
const/4 v5, 0x0
const/16 v6, 0x10
if-ne v3, v4, :cond_13
.line 46
invoke-virtual {v2, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
return-object v5
:cond_13
const/16 v7, 0xe
const-string v8, "syntax error, "
if-ne v3, v7, :cond_17a
.line 47
array-length v3, v1
new-array v3, v3, [Ljava/lang/Object;
.line 48
array-length v9, v1
const/4 v10, 0x0
const/16 v11, 0xf
if-nez v9, :cond_4c
.line 49
invoke-virtual {v2, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 50
iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v2, v11, :cond_31
.line 51
invoke-virtual {v1, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 52
new-array v1, v10, [Ljava/lang/Object;
return-object v1
.line 53
:cond_31
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
:cond_4c
const/4 v9, 0x2
.line 54
invoke-virtual {v2, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
const/4 v2, 0x0
.line 55
:goto_51
array-length v12, v1
if-ge v2, v12, :cond_155
.line 56
iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v13, v12, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v13, v4, :cond_60
.line 57
invoke-virtual {v12, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
move-object v4, v5
goto/16 :goto_11d
.line 58
:cond_60
aget-object v14, v1, v2
.line 59
sget-object v15, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
if-eq v14, v15, :cond_ff
const-class v15, Ljava/lang/Integer;
if-ne v14, v15, :cond_6c
goto/16 :goto_ff
.line 60
:cond_6c
const-class v15, Ljava/lang/String;
if-ne v14, v15, :cond_8a
const/4 v15, 0x4
if-ne v13, v15, :cond_7d
.line 61
invoke-virtual {v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v12
.line 62
iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v13, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_87
.line 63
:cond_7d
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v12
.line 64
iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-static {v12, v14, v13}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v12
:goto_87
move-object v4, v12
goto/16 :goto_11d
.line 65
:cond_8a
array-length v12, v1
add-int/lit8 v12, v12, -0x1
if-ne v2, v12, :cond_9f
.line 66
instance-of v12, v14, Ljava/lang/Class;
if-eqz v12, :cond_9f
.line 67
move-object v12, v14
check-cast v12, Ljava/lang/Class;
.line 68
invoke-virtual {v12}, Ljava/lang/Class;->isArray()Z
move-result v13
.line 69
invoke-virtual {v12}, Ljava/lang/Class;->getComponentType()Ljava/lang/Class;
move-result-object v12
goto :goto_a1
:cond_9f
move-object v12, v5
const/4 v13, 0x0
:goto_a1
if-eqz v13, :cond_f4
.line 70
iget-object v13, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v13, v13, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-eq v13, v7, :cond_f4
.line 71
new-instance v13, Ljava/util/ArrayList;
invoke-direct {v13}, Ljava/util/ArrayList;-><init>()V
.line 72
iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v15, v12}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v12
.line 73
iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v15, v15, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-eq v15, v11, :cond_ed
.line 74
:goto_ba
invoke-interface {v12, v0, v14, v5}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v15
.line 75
invoke-interface {v13, v15}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 76
iget-object v15, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v4, v15, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v4, v6, :cond_cf
const/16 v4, 0xc
.line 77
invoke-virtual {v15, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
const/16 v4, 0x8
goto :goto_ba
:cond_cf
if-ne v4, v11, :cond_d2
goto :goto_ed
.line 78
:cond_d2
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.line 79
:cond_ed
:goto_ed
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-static {v13, v14, v4}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v4
goto :goto_11d
.line 80
:cond_f4
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v4, v14}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v4
.line 81
invoke-interface {v4, v0, v14, v5}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
goto :goto_11d
.line 82
:cond_ff
:goto_ff
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v12, v4, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v12, v9, :cond_113
.line 83
invoke-virtual {v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->intValue()I
move-result v4
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
.line 84
iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v12, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_11d
.line 85
:cond_113
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v4
.line 86
iget-object v12, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-static {v4, v14, v12}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/reflect/Type;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v4
.line 87
:goto_11d
aput-object v4, v3, v2
.line 88
iget-object v4, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v12, v4, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v12, v11, :cond_126
goto :goto_155
:cond_126
if-ne v12, v6, :cond_13a
.line 89
array-length v12, v1
add-int/lit8 v12, v12, -0x1
if-ne v2, v12, :cond_131
.line 90
invoke-virtual {v4, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_134
.line 91
:cond_131
invoke-virtual {v4, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:goto_134
add-int/lit8 v2, v2, 0x1
const/16 v4, 0x8
goto/16 :goto_51
.line 92
:cond_13a
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.line 93
:cond_155
:goto_155
iget-object v1, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v2, v11, :cond_15f
.line 94
invoke-virtual {v1, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
return-object v3
.line 95
:cond_15f
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.line 96
:cond_17a
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-object v3, v0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_196
:goto_195
throw v1
:goto_196
goto :goto_195
.end method
.method public parseArrayWithType(Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 8
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v2, 0x8
if-ne v1, v2, :cond_d
.line 2
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
const/4 p1, 0x0
return-object p1
.line 3
:cond_d
move-object v0, p1
check-cast v0, Ljava/lang/reflect/ParameterizedType;
invoke-interface {v0}, Ljava/lang/reflect/ParameterizedType;->getActualTypeArguments()[Ljava/lang/reflect/Type;
move-result-object v0
.line 4
array-length v1, v0
const/4 v2, 0x1
if-ne v1, v2, :cond_c8
const/4 v1, 0x0
.line 5
aget-object v0, v0, v1
.line 6
instance-of v3, v0, Ljava/lang/Class;
if-eqz v3, :cond_2a
.line 7
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
.line 8
check-cast v0, Ljava/lang/Class;
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
return-object p1
.line 9
:cond_2a
instance-of v3, v0, Ljava/lang/reflect/WildcardType;
if-eqz v3, :cond_6c
.line 10
check-cast v0, Ljava/lang/reflect/WildcardType;
.line 11
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getUpperBounds()[Ljava/lang/reflect/Type;
move-result-object v2
aget-object v1, v2, v1
.line 12
const-class v2, Ljava/lang/Object;
invoke-virtual {v2, v1}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_61
.line 13
invoke-interface {v0}, Ljava/lang/reflect/WildcardType;->getLowerBounds()[Ljava/lang/reflect/Type;
move-result-object v0
array-length v0, v0
if-nez v0, :cond_4a
.line 14
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object p1
return-object p1
.line 15
:cond_4a
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "not support type : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 16
:cond_61
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
.line 17
check-cast v1, Ljava/lang/Class;
invoke-virtual {p0, v1, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
return-object p1
.line 18
:cond_6c
instance-of v3, v0, Ljava/lang/reflect/TypeVariable;
if-eqz v3, :cond_a2
.line 19
move-object v3, v0
check-cast v3, Ljava/lang/reflect/TypeVariable;
.line 20
invoke-interface {v3}, Ljava/lang/reflect/TypeVariable;->getBounds()[Ljava/lang/reflect/Type;
move-result-object v4
.line 21
array-length v5, v4
if-ne v5, v2, :cond_8b
.line 22
aget-object v1, v4, v1
.line 23
instance-of v2, v1, Ljava/lang/Class;
if-eqz v2, :cond_a2
.line 24
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
.line 25
check-cast v1, Ljava/lang/Class;
invoke-virtual {p0, v1, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/Class;Ljava/util/Collection;)V
return-object p1
.line 26
:cond_8b
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "not support : "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.line 27
:cond_a2
instance-of v1, v0, Ljava/lang/reflect/ParameterizedType;
if-eqz v1, :cond_b1
.line 28
check-cast v0, Ljava/lang/reflect/ParameterizedType;
.line 29
new-instance p1, Ljava/util/ArrayList;
invoke-direct {p1}, Ljava/util/ArrayList;-><init>()V
.line 30
invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/lang/reflect/Type;Ljava/util/Collection;)V
return-object p1
.line 31
:cond_b1
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "TODO : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 32
:cond_c8
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "not support type "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public parseObject()Lcom/alibaba/fastjson/JSONObject;
.registers 3
.line 272
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v1, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
iget v1, v1, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v0, v1
if-eqz v0, :cond_16
new-instance v0, Lcom/alibaba/fastjson/JSONObject;
new-instance v1, Ljava/util/LinkedHashMap;
invoke-direct {v1}, Ljava/util/LinkedHashMap;-><init>()V
invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONObject;-><init>(Ljava/util/Map;)V
goto :goto_1b
:cond_16
new-instance v0, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v0}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
:goto_1b
const/4 v1, 0x0
.line 273
invoke-virtual {p0, v0, v1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/alibaba/fastjson/JSONObject;
return-object v0
.end method
.method public parseObject(Ljava/lang/Class;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/Class<",
"TT;>;)TT;"
}
.end annotation
const/4 v0, 0x0
.line 223
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public parseObject(Ljava/lang/reflect/Type;)Ljava/lang/Object;
.registers 3
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/reflect/Type;",
")TT;"
}
.end annotation
const/4 v0, 0x0
.line 224
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public parseObject(Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
.line 225
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v2, 0x8
if-ne v1, v2, :cond_d
.line 226
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
const/4 p1, 0x0
return-object p1
:cond_d
const/4 v2, 0x4
if-ne v1, v2, :cond_30
.line 227
const-class v1, [B
if-ne p1, v1, :cond_1e
.line 228
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->bytesValue()[B
move-result-object p1
.line 229
iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-object p1
.line 230
:cond_1e
const-class v1, [C
if-ne p1, v1, :cond_30
.line 231
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object p1
.line 232
iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 233
invoke-virtual {p1}, Ljava/lang/String;->toCharArray()[C
move-result-object p1
return-object p1
.line 234
:cond_30
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v0, p1}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v0
.line 235
:try_start_36
invoke-interface {v0, p0, p1, p2}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
:try_end_3a
.catch Lcom/alibaba/fastjson/JSONException; {:try_start_36 .. :try_end_3a} :catch_46
.catch Ljava/lang/Exception; {:try_start_36 .. :try_end_3a} :catch_3b
return-object p1
:catch_3b
move-exception p1
.line 236
new-instance p2, Lcom/alibaba/fastjson/JSONException;
invoke-virtual {p1}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-direct {p2, v0, p1}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw p2
:catch_46
move-exception p1
.line 237
throw p1
.end method
.method public parseObject(Ljava/util/Map;)Ljava/lang/Object;
.registers 3
const/4 v0, 0x0
.line 271
invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
return-object p1
.end method
.method public final parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
.registers 21
move-object/from16 v1, p0
move-object/from16 v0, p1
move-object/from16 v2, p2
.line 1
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
.line 2
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/4 v5, 0x0
const/16 v6, 0x8
if-ne v4, v6, :cond_13
.line 3
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-object v5
:cond_13
const/16 v6, 0xc
const/16 v7, 0x10
if-eq v4, v6, :cond_43
if-ne v4, v7, :cond_1c
goto :goto_43
.line 4
:cond_1c
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "syntax error, expect {, actual "
invoke-virtual {v2, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {v4}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v4
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v4, ", "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 5
:cond_43
:goto_43
instance-of v4, v0, Lcom/alibaba/fastjson/JSONObject;
if-eqz v4, :cond_51
.line 6
move-object v4, v0
check-cast v4, Lcom/alibaba/fastjson/JSONObject;
.line 7
invoke-virtual {v4}, Lcom/alibaba/fastjson/JSONObject;->getInnerMap()Ljava/util/Map;
move-result-object v4
move-object v10, v4
const/4 v4, 0x1
goto :goto_53
:cond_51
move-object v10, v0
const/4 v4, 0x0
.line 8
:goto_53
iget v11, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v12, Lcom/alibaba/fastjson/parser/Feature;->AllowISO8601DateFormat:Lcom/alibaba/fastjson/parser/Feature;
iget v12, v12, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v11, v12
if-eqz v11, :cond_5e
const/4 v11, 0x1
goto :goto_5f
:cond_5e
const/4 v11, 0x0
.line 9
:goto_5f
iget-boolean v12, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z
.line 10
iget-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
const/4 v14, 0x0
.line 11
:goto_64
:try_start_64
iget-char v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v5, 0x7d
const/16 v6, 0x22
if-eq v15, v6, :cond_73
if-eq v15, v5, :cond_73
.line 12
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 13
iget-char v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:cond_73
:goto_73
const/16 v7, 0x2c
if-ne v15, v7, :cond_80
.line 14
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 15
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 16
iget-char v15, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:try_end_7f
.catchall {:try_start_64 .. :try_end_7f} :catchall_6d5
goto :goto_73
:cond_80
const-string v7, "expect \':\' at "
const/16 v8, 0x3a
const-string v9, "syntax error, "
const/16 v5, 0x1a
if-ne v15, v6, :cond_be
.line 17
:try_start_8a
iget-object v15, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
invoke-virtual {v3, v15, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v15
.line 18
iget-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-eq v6, v8, :cond_bb
.line 19
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 20
iget-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v6, v8, :cond_9c
goto :goto_bb
.line 21
:cond_9c
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ", name "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_bb
:goto_bb
const/4 v6, 0x0
goto/16 :goto_1c1
:cond_be
const/16 v6, 0x7d
if-ne v15, v6, :cond_e2
.line 22
iget v2, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v4, 0x1
add-int/2addr v2, v4
iput v2, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 23
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v4, :cond_cd
goto :goto_d3
:cond_cd
iget-object v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 24
invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_d3
iput-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v2, 0x0
.line 25
iput v2, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
const/16 v2, 0x10
.line 26
invoke-virtual {v3, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_dd
.catchall {:try_start_8a .. :try_end_dd} :catchall_6d5
if-nez v12, :cond_e1
.line 27
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_e1
return-object v0
:cond_e2
const/16 v6, 0x27
if-ne v15, v6, :cond_111
.line 28
:try_start_e6
iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
const/16 v15, 0x27
invoke-virtual {v3, v6, v15}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v15
.line 29
iget-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-eq v6, v8, :cond_f5
.line 30
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 31
:cond_f5
iget-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v6, v8, :cond_fa
goto :goto_bb
.line 32
:cond_fa
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_111
if-eq v15, v5, :cond_6bc
const/16 v6, 0x2c
if-eq v15, v6, :cond_6a3
const/16 v6, 0x30
if-lt v15, v6, :cond_11f
const/16 v6, 0x39
if-le v15, v6, :cond_123
:cond_11f
const/16 v6, 0x2d
if-ne v15, v6, :cond_17c
:cond_123
const/4 v6, 0x0
.line 33
iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
.line 34
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V
:try_end_129
.catchall {:try_start_e6 .. :try_end_129} :catchall_6d5
.line 35
:try_start_129
iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/4 v7, 0x2
if-ne v6, v7, :cond_133
.line 36
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->integerValue()Ljava/lang/Number;
move-result-object v6
goto :goto_139
:cond_133
const/4 v6, 0x1
.line 37
invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue(Z)Ljava/lang/Number;
move-result-object v7
move-object v6, v7
:goto_139
if-eqz v4, :cond_13f
.line 38
invoke-virtual {v6}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v6
:try_end_13f
.catch Ljava/lang/NumberFormatException; {:try_start_129 .. :try_end_13f} :catch_161
.catchall {:try_start_129 .. :try_end_13f} :catchall_6d5
:cond_13f
move-object v15, v6
.line 39
:try_start_140
iget-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v6, v8, :cond_146
goto/16 :goto_bb
.line 40
:cond_146
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "parse number key error, "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 41
:catch_161
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "parse number key error, "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_17c
const/16 v6, 0x7b
if-eq v15, v6, :cond_1b9
const/16 v6, 0x5b
if-ne v15, v6, :cond_185
goto :goto_1b9
.line 42
:cond_185
iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object v15
.line 43
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 44
iget-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
if-ne v6, v8, :cond_19a
if-eqz v4, :cond_bb
.line 45
invoke-virtual {v15}, Ljava/lang/String;->toString()Ljava/lang/String;
move-result-object v15
goto/16 :goto_bb
.line 46
:cond_19a
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v3, ", actual "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v6}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 47
:cond_1b9
:goto_1b9
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 48
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v15
const/4 v6, 0x1
:goto_1c1
const/16 v7, 0xd
if-nez v6, :cond_1fa
.line 49
iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v8, 0x1
add-int/2addr v6, v8
iput v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 50
iget v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v6, v8, :cond_1d2
const/16 v6, 0x1a
goto :goto_1d8
:cond_1d2
iget-object v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 51
invoke-virtual {v8, v6}, Ljava/lang/String;->charAt(I)C
move-result v6
:goto_1d8
iput-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_1da
const/16 v8, 0x20
if-gt v6, v8, :cond_1fc
const/16 v8, 0x20
if-eq v6, v8, :cond_1f4
const/16 v8, 0xa
if-eq v6, v8, :cond_1f4
if-eq v6, v7, :cond_1f4
const/16 v8, 0x9
if-eq v6, v8, :cond_1f4
const/16 v8, 0xc
if-eq v6, v8, :cond_1f4
const/16 v8, 0x8
if-ne v6, v8, :cond_1fc
.line 52
:cond_1f4
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 53
iget-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
goto :goto_1da
.line 54
:cond_1fa
iget-char v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:cond_1fc
const/4 v8, 0x0
.line 55
iput v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
const-string v8, "@type"
if-ne v15, v8, :cond_2f5
.line 56
sget-object v8, Lcom/alibaba/fastjson/parser/Feature;->DisableSpecialKeyDetect:Lcom/alibaba/fastjson/parser/Feature;
.line 57
invoke-virtual {v3, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v8
if-nez v8, :cond_2f5
.line 58
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
const/16 v6, 0x22
invoke-virtual {v3, v5, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String;
move-result-object v5
const/4 v6, 0x0
.line 59
:goto_214
invoke-virtual {v5}, Ljava/lang/String;->length()I
move-result v8
if-ge v6, v8, :cond_22c
.line 60
invoke-virtual {v5, v6}, Ljava/lang/String;->charAt(I)C
move-result v8
const/16 v9, 0x30
if-lt v8, v9, :cond_22a
const/16 v9, 0x39
if-le v8, v9, :cond_227
goto :goto_22a
:cond_227
add-int/lit8 v6, v6, 0x1
goto :goto_214
:cond_22a
:goto_22a
const/4 v6, 0x0
goto :goto_22d
:cond_22c
const/4 v6, 0x1
:goto_22d
if-nez v6, :cond_239
.line 61
iget-object v6, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
iget v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
const/4 v9, 0x0
invoke-virtual {v6, v5, v9, v8}, Lcom/alibaba/fastjson/parser/ParserConfig;->checkAutoType(Ljava/lang/String;Ljava/lang/Class;I)Ljava/lang/Class;
move-result-object v6
goto :goto_23b
:cond_239
const/4 v9, 0x0
move-object v6, v9
:goto_23b
if-nez v6, :cond_249
const-string v6, "@type"
.line 62
invoke-interface {v0, v6, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
move-object v5, v9
:goto_243
const/16 v6, 0xc
const/16 v7, 0x10
goto/16 :goto_64
:cond_249
const/16 v4, 0x10
.line 63
invoke-virtual {v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 64
iget v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v8, v7, :cond_2bd
.line 65
invoke-virtual {v3, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_255
.catchall {:try_start_140 .. :try_end_255} :catchall_6d5
.line 66
:try_start_255
iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v2, v6}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v2
.line 67
instance-of v3, v2, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;
if-eqz v3, :cond_291
.line 68
check-cast v2, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;
.line 69
invoke-virtual {v2, v1, v6}, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;->createInstance(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;)Ljava/lang/Object;
move-result-object v3
.line 70
invoke-interface/range {p1 .. p1}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_26d
:goto_26d
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v4
if-eqz v4, :cond_292
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v4
.line 71
check-cast v4, Ljava/util/Map$Entry;
.line 72
invoke-interface {v4}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v7
.line 73
instance-of v8, v7, Ljava/lang/String;
if-eqz v8, :cond_26d
.line 74
check-cast v7, Ljava/lang/String;
invoke-virtual {v2, v7}, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
move-result-object v7
if-eqz v7, :cond_26d
.line 75
invoke-interface {v4}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v4
invoke-virtual {v7, v3, v4}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
goto :goto_26d
:cond_291
move-object v3, v9
:cond_292
if-nez v3, :cond_2af
.line 76
const-class v0, Ljava/lang/Cloneable;
if-ne v6, v0, :cond_29e
.line 77
new-instance v3, Ljava/util/HashMap;
invoke-direct {v3}, Ljava/util/HashMap;-><init>()V
goto :goto_2af
:cond_29e
const-string v0, "java.util.Collections$EmptyMap"
.line 78
invoke-virtual {v0, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_2ab
.line 79
invoke-static {}, Ljava/util/Collections;->emptyMap()Ljava/util/Map;
move-result-object v3
goto :goto_2af
.line 80
:cond_2ab
invoke-virtual {v6}, Ljava/lang/Class;->newInstance()Ljava/lang/Object;
move-result-object v3
:try_end_2af
.catch Ljava/lang/Exception; {:try_start_255 .. :try_end_2af} :catch_2b4
.catchall {:try_start_255 .. :try_end_2af} :catchall_6d5
:cond_2af
:goto_2af
if-nez v12, :cond_2b3
.line 81
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_2b3
return-object v3
:catch_2b4
move-exception v0
.line 82
:try_start_2b5
new-instance v2, Lcom/alibaba/fastjson/JSONException;
const-string v3, "create instance error"
invoke-direct {v2, v3, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v2
:cond_2bd
const/4 v3, 0x2
.line 83
iput v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
.line 84
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
if-eqz v3, :cond_2cb
instance-of v3, v2, Ljava/lang/Integer;
if-nez v3, :cond_2cb
.line 85
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->popContext()V
.line 86
:cond_2cb
invoke-interface/range {p1 .. p1}, Ljava/util/Map;->size()I
move-result v3
if-lez v3, :cond_2df
.line 87
iget-object v2, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-static {v0, v6, v2}, Lcom/alibaba/fastjson/util/TypeUtils;->cast(Ljava/lang/Object;Ljava/lang/Class;Lcom/alibaba/fastjson/parser/ParserConfig;)Ljava/lang/Object;
move-result-object v0
.line 88
invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/lang/Object;)V
:try_end_2da
.catchall {:try_start_2b5 .. :try_end_2da} :catchall_6d5
if-nez v12, :cond_2de
.line 89
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_2de
return-object v0
.line 90
:cond_2df
:try_start_2df
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v0
.line 91
invoke-interface {v0, v1, v6, v2}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
.line 92
instance-of v0, v0, Lcom/alibaba/fastjson/parser/MapDeserializer;
if-eqz v0, :cond_2f0
const/4 v0, 0x0
.line 93
iput v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
:try_end_2f0
.catchall {:try_start_2df .. :try_end_2f0} :catchall_6d5
:cond_2f0
if-nez v12, :cond_2f4
.line 94
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_2f4
return-object v2
:cond_2f5
const/4 v8, 0x0
:try_start_2f6
const-string v5, "$ref"
if-ne v15, v5, :cond_3c1
if-eqz v13, :cond_3c1
.line 95
sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->DisableSpecialKeyDetect:Lcom/alibaba/fastjson/parser/Feature;
.line 96
invoke-virtual {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v5
if-nez v5, :cond_3c1
const/4 v0, 0x4
.line 97
invoke-virtual {v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 98
iget v0, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/4 v2, 0x4
if-ne v0, v2, :cond_3a4
.line 99
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v0
.line 100
invoke-virtual {v3, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
const-string v2, "@"
.line 101
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_332
.line 102
iget-object v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
.line 103
iget-object v5, v0, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
.line 104
instance-of v2, v5, [Ljava/lang/Object;
if-nez v2, :cond_37d
instance-of v2, v5, Ljava/util/Collection;
if-eqz v2, :cond_329
goto :goto_37d
.line 105
:cond_329
iget-object v2, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
if-eqz v2, :cond_37c
.line 106
iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
iget-object v5, v0, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
goto :goto_37d
:cond_332
const-string v2, ".."
.line 107
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_34d
.line 108
iget-object v2, v13, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
if-eqz v2, :cond_341
.line 109
iget-object v5, v13, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
goto :goto_37d
.line 110
:cond_341
new-instance v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v2, v13, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
const/4 v0, 0x1
.line 111
iput v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
goto :goto_37c
:cond_34d
const-string v2, "$"
.line 112
invoke-virtual {v2, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_371
move-object v2, v13
.line 113
:goto_356
iget-object v4, v2, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
if-eqz v4, :cond_35d
.line 114
iget-object v2, v2, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
goto :goto_356
.line 115
:cond_35d
iget-object v4, v2, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
if-eqz v4, :cond_365
.line 116
iget-object v0, v2, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
move-object v5, v0
goto :goto_37d
.line 117
:cond_365
new-instance v4, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v4, v2, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v4}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
const/4 v0, 0x1
.line 118
iput v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
goto :goto_37c
.line 119
:cond_371
new-instance v2, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;
invoke-direct {v2, v13, v0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/String;)V
invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->addResolveTask(Lcom/alibaba/fastjson/parser/DefaultJSONParser$ResolveTask;)V
const/4 v0, 0x1
.line 120
iput v0, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
:cond_37c
:goto_37c
move-object v5, v8
.line 121
:cond_37d
:goto_37d
iget v0, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v0, v7, :cond_38b
const/16 v0, 0x10
.line 122
invoke-virtual {v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_386
.catchall {:try_start_2f6 .. :try_end_386} :catchall_6d5
if-nez v12, :cond_38a
.line 123
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_38a
return-object v5
.line 124
:cond_38b
:try_start_38b
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 125
:cond_3a4
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "illegal ref, "
invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v3, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
invoke-static {v3}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_3c1
if-nez v12, :cond_3d2
if-nez v14, :cond_3d2
.line 126
iget-object v5, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {v1, v5, v0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v5
if-nez v13, :cond_3ce
move-object v13, v5
:cond_3ce
const/16 v5, 0x22
const/4 v14, 0x1
goto :goto_3d4
:cond_3d2
const/16 v5, 0x22
:goto_3d4
if-ne v6, v5, :cond_3fb
.line 127
invoke-virtual {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanStringValue(C)Ljava/lang/String;
move-result-object v5
if-eqz v11, :cond_3f1
.line 128
new-instance v6, Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-direct {v6, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;-><init>(Ljava/lang/String;)V
const/4 v8, 0x1
.line 129
invoke-virtual {v6, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(Z)Z
move-result v16
if-eqz v16, :cond_3ee
.line 130
iget-object v5, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar;
invoke-virtual {v5}, Ljava/util/Calendar;->getTime()Ljava/util/Date;
move-result-object v5
.line 131
:cond_3ee
invoke-virtual {v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->close()V
:cond_3f1
if-eqz v10, :cond_3f7
.line 132
invoke-interface {v10, v15, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_40e
.line 133
:cond_3f7
invoke-interface {v0, v15, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_40e
:cond_3fb
const/16 v5, 0x30
if-lt v6, v5, :cond_403
const/16 v5, 0x39
if-le v6, v5, :cond_407
:cond_403
const/16 v5, 0x2d
if-ne v6, v5, :cond_412
.line 134
:cond_407
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumberValue()Ljava/lang/Number;
move-result-object v5
.line 135
invoke-interface {v10, v15, v5}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:goto_40e
move/from16 v17, v4
goto/16 :goto_58b
:cond_412
const/16 v5, 0x5b
if-ne v6, v5, :cond_488
const/16 v5, 0xe
.line 136
iput v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 137
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v6, 0x1
add-int/2addr v5, v6
iput v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 138
iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v6, :cond_427
const/16 v5, 0x1a
goto :goto_42d
:cond_427
iget-object v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 139
invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_42d
iput-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 140
new-instance v5, Ljava/util/ArrayList;
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
if-eqz v2, :cond_440
.line 141
invoke-virtual/range {p2 .. p2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v6
const-class v8, Ljava/lang/Integer;
if-ne v6, v8, :cond_440
const/4 v6, 0x1
goto :goto_441
:cond_440
const/4 v6, 0x0
:goto_441
if-nez v6, :cond_446
.line 142
invoke-virtual {v1, v13}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.line 143
:cond_446
invoke-virtual {v1, v5, v15}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseArray(Ljava/util/Collection;Ljava/lang/Object;)V
.line 144
new-instance v6, Lcom/alibaba/fastjson/JSONArray;
invoke-direct {v6, v5}, Lcom/alibaba/fastjson/JSONArray;-><init>(Ljava/util/List;)V
if-eqz v10, :cond_454
.line 145
invoke-interface {v10, v15, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_457
.line 146
:cond_454
invoke-interface {v0, v15, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 147
:goto_457
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v5, v7, :cond_465
const/16 v6, 0x10
.line 148
invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_460
.catchall {:try_start_38b .. :try_end_460} :catchall_6d5
if-nez v12, :cond_464
.line 149
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_464
return-object v0
:cond_465
const/16 v6, 0x10
if-ne v5, v6, :cond_46f
move/from16 v17, v4
const/4 v4, 0x0
const/4 v5, 0x1
goto/16 :goto_685
.line 150
:cond_46f
:try_start_46f
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_488
const/16 v5, 0x7b
if-ne v6, v5, :cond_54c
.line 151
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v6, 0x1
add-int/2addr v5, v6
iput v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 152
iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v5, v6, :cond_499
const/16 v5, 0x1a
goto :goto_49f
:cond_499
iget-object v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 153
invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_49f
iput-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v5, 0xc
.line 154
iput v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
.line 155
instance-of v6, v2, Ljava/lang/Integer;
.line 156
iget v8, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v5, Lcom/alibaba/fastjson/parser/Feature;->OrderedField:Lcom/alibaba/fastjson/parser/Feature;
iget v5, v5, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v5, v8
if-eqz v5, :cond_4bb
new-instance v5, Lcom/alibaba/fastjson/JSONObject;
new-instance v8, Ljava/util/LinkedHashMap;
invoke-direct {v8}, Ljava/util/LinkedHashMap;-><init>()V
invoke-direct {v5, v8}, Lcom/alibaba/fastjson/JSONObject;-><init>(Ljava/util/Map;)V
goto :goto_4c0
:cond_4bb
new-instance v5, Lcom/alibaba/fastjson/JSONObject;
invoke-direct {v5}, Lcom/alibaba/fastjson/JSONObject;-><init>()V
:goto_4c0
if-nez v12, :cond_4c9
if-nez v6, :cond_4c9
.line 157
invoke-virtual {v1, v13, v5, v15}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
move-result-object v8
goto :goto_4ca
:cond_4c9
const/4 v8, 0x0
.line 158
:goto_4ca
iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
if-eqz v7, :cond_4ef
if-eqz v15, :cond_4d7
.line 159
invoke-virtual {v15}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v7
move/from16 v17, v4
goto :goto_4da
:cond_4d7
move/from16 v17, v4
const/4 v7, 0x0
.line 160
:goto_4da
iget-object v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->fieldTypeResolver:Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;
invoke-interface {v4, v0, v7}, Lcom/alibaba/fastjson/parser/deserializer/FieldTypeResolver;->resolve(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Type;
move-result-object v4
if-eqz v4, :cond_4f1
.line 161
iget-object v7, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v7, v4}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v7
.line 162
invoke-interface {v7, v1, v4, v15}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v4
move-object v7, v4
const/4 v4, 0x1
goto :goto_4f3
:cond_4ef
move/from16 v17, v4
:cond_4f1
const/4 v4, 0x0
const/4 v7, 0x0
:goto_4f3
if-nez v4, :cond_4f9
.line 163
invoke-virtual {v1, v5, v15}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseObject(Ljava/util/Map;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v7
:cond_4f9
if-eqz v8, :cond_4ff
if-eq v5, v7, :cond_4ff
.line 164
iput-object v0, v8, Lcom/alibaba/fastjson/parser/ParseContext;->object:Ljava/lang/Object;
.line 165
:cond_4ff
iget v4, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->resolveStatus:I
const/4 v5, 0x1
if-ne v4, v5, :cond_50b
.line 166
invoke-virtual {v15}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v0, v4}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->checkMapResolve(Ljava/util/Map;Ljava/lang/Object;)V
:cond_50b
if-eqz v10, :cond_511
.line 167
invoke-interface {v10, v15, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_514
.line 168
:cond_511
invoke-interface {v0, v15, v7}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:goto_514
if-eqz v6, :cond_519
.line 169
invoke-virtual {v1, v13, v7, v15}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.line 170
:cond_519
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v5, 0xd
if-ne v4, v5, :cond_52d
const/16 v5, 0x10
.line 171
invoke-virtual {v3, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
if-nez v12, :cond_528
.line 172
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:try_end_528
.catchall {:try_start_46f .. :try_end_528} :catchall_6d5
:cond_528
if-nez v12, :cond_52c
.line 173
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_52c
return-object v0
:cond_52d
const/16 v5, 0x10
if-ne v4, v5, :cond_533
goto/16 :goto_5b3
.line 174
:cond_533
:try_start_533
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_54c
move/from16 v17, v4
const/16 v4, 0x74
if-ne v6, v4, :cond_56d
.line 175
iget-object v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
const-string v5, "true"
iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v4, v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v4
if-eqz v4, :cond_58b
.line 176
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v4, 0x3
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 177
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 178
sget-object v4, Ljava/lang/Boolean;->TRUE:Ljava/lang/Boolean;
invoke-interface {v0, v15, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
goto :goto_58b
:cond_56d
const/16 v4, 0x66
if-ne v6, v4, :cond_657
.line 179
iget-object v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
const-string v5, "false"
iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
invoke-virtual {v4, v5, v6}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z
move-result v4
if-eqz v4, :cond_58b
.line 180
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v4, v4, 0x4
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 181
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C
.line 182
sget-object v4, Ljava/lang/Boolean;->FALSE:Ljava/lang/Boolean;
invoke-interface {v0, v15, v4}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 183
:cond_58b
:goto_58b
iget-char v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v5, 0x2c
if-eq v4, v5, :cond_59a
const/16 v5, 0x7d
if-eq v4, v5, :cond_59a
.line 184
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipWhitespace()V
.line 185
iget-char v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:cond_59a
const/16 v5, 0x2c
if-ne v4, v5, :cond_5b9
.line 186
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v5, 0x1
add-int/2addr v4, v5
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 187
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v5, :cond_5ab
const/16 v5, 0x1a
goto :goto_5b1
:cond_5ab
iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 188
invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_5b1
iput-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
:goto_5b3
const/4 v4, 0x0
const/4 v5, 0x1
const/16 v6, 0x10
goto/16 :goto_685
:cond_5b9
const/16 v5, 0x7d
if-ne v4, v5, :cond_63e
.line 189
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v5, 0x1
add-int/2addr v4, v5
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 190
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v5, :cond_5ca
const/16 v5, 0x1a
goto :goto_5d0
:cond_5ca
iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 191
invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_5d0
iput-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/4 v4, 0x0
.line 192
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I
const/16 v4, 0x2c
if-ne v5, v4, :cond_5f3
.line 193
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v5, 0x1
add-int/2addr v4, v5
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 194
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v5, :cond_5e6
const/16 v5, 0x1a
goto :goto_5ec
:cond_5e6
iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 195
invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_5ec
iput-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v4, 0x10
.line 196
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_632
:cond_5f3
const/16 v4, 0x7d
if-ne v5, v4, :cond_611
.line 197
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v5, 0x1
add-int/2addr v4, v5
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 198
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v5, :cond_604
const/16 v5, 0x1a
goto :goto_60a
:cond_604
iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 199
invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_60a
iput-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v4, 0xd
.line 200
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_632
:cond_611
const/16 v4, 0x5d
if-ne v5, v4, :cond_62f
.line 201
iget v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
const/4 v5, 0x1
add-int/2addr v4, v5
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 202
iget v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v4, v5, :cond_622
const/16 v5, 0x1a
goto :goto_628
:cond_622
iget-object v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 203
invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_628
iput-char v5, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v4, 0xf
.line 204
iput v4, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_632
.line 205
:cond_62f
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:goto_632
if-nez v12, :cond_639
.line 206
iget-object v3, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
invoke-virtual {v1, v3, v0, v2}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
:try_end_639
.catchall {:try_start_533 .. :try_end_639} :catchall_6d5
:cond_639
if-nez v12, :cond_63d
.line 207
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_63d
return-object v0
.line 208
:cond_63e
:try_start_63e
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:cond_657
const/4 v4, 0x0
const/4 v5, 0x1
.line 209
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 210
invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v6
.line 211
invoke-virtual/range {p1 .. p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v7
const-class v8, Lcom/alibaba/fastjson/JSONObject;
if-ne v7, v8, :cond_66c
.line 212
invoke-virtual {v15}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v15
.line 213
:cond_66c
invoke-interface {v0, v15, v6}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 214
iget v6, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v7, 0xd
if-ne v6, v7, :cond_67f
const/16 v6, 0x10
.line 215
invoke-virtual {v3, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
:try_end_67a
.catchall {:try_start_63e .. :try_end_67a} :catchall_6d5
if-nez v12, :cond_67e
.line 216
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
:cond_67e
return-object v0
:cond_67f
const/16 v6, 0x10
.line 217
:try_start_681
iget v7, v3, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v7, v6, :cond_68a
:goto_685
move/from16 v4, v17
const/4 v5, 0x0
goto/16 :goto_243
.line 218
:cond_68a
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 219
:cond_6a3
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
.line 220
:cond_6bc
new-instance v0, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v2, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v0, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_6d5
.catchall {:try_start_681 .. :try_end_6d5} :catchall_6d5
:catchall_6d5
move-exception v0
if-nez v12, :cond_6da
.line 221
iput-object v13, v1, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
.line 222
:cond_6da
goto :goto_6dc
:goto_6db
throw v0
:goto_6dc
goto :goto_6db
.end method
.method public parseObject(Ljava/lang/Object;)V
.registers 12
.line 238
invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
.line 239
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v1, v0}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v1
.line 240
instance-of v2, v1, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;
const/4 v3, 0x0
if-eqz v2, :cond_12
.line 241
check-cast v1, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;
goto :goto_13
:cond_12
move-object v1, v3
.line 242
:goto_13
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v2, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v4, 0xc
const/16 v5, 0x10
if-eq v2, v4, :cond_3b
if-ne v2, v5, :cond_20
goto :goto_3b
.line 243
:cond_20
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "syntax error, expect {, actual "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static {v2}, Lcom/alibaba/fastjson/parser/JSONToken;->name(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, 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-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.line 244
:cond_3b
:goto_3b
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-object v4, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->symbolTable:Lcom/alibaba/fastjson/parser/SymbolTable;
invoke-virtual {v2, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object v2
const/16 v4, 0xd
if-nez v2, :cond_54
.line 245
iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v7, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v7, v4, :cond_51
.line 246
invoke-virtual {v6, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
return-void
:cond_51
if-ne v7, v5, :cond_54
goto :goto_3b
:cond_54
if-eqz v1, :cond_5b
.line 247
invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/JavaBeanDeserializer;->getFieldDeserializer(Ljava/lang/String;)Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;
move-result-object v6
goto :goto_5c
:cond_5b
move-object v6, v3
:goto_5c
const/16 v7, 0x3a
if-nez v6, :cond_9e
.line 248
iget-object v6, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v8, v6, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I
sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->IgnoreNotMatch:Lcom/alibaba/fastjson/parser/Feature;
iget v9, v9, Lcom/alibaba/fastjson/parser/Feature;->mask:I
and-int/2addr v8, v9
if-eqz v8, :cond_7b
.line 249
invoke-virtual {v6, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V
.line 250
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
.line 251
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v6, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v6, v4, :cond_3b
.line 252
invoke-virtual {v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
return-void
.line 253
:cond_7b
new-instance p1, Lcom/alibaba/fastjson/JSONException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "setter not found, class "
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, ", property "
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw p1
.line 254
:cond_9e
iget-object v2, v6, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->fieldInfo:Lcom/alibaba/fastjson/util/FieldInfo;
iget-object v8, v2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldClass:Ljava/lang/Class;
.line 255
iget-object v2, v2, Lcom/alibaba/fastjson/util/FieldInfo;->fieldType:Ljava/lang/reflect/Type;
.line 256
sget-object v9, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
if-ne v8, v9, :cond_b4
.line 257
iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v8, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V
.line 258
sget-object v7, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
invoke-virtual {v7, p0, v2, v3}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
goto :goto_e1
.line 259
:cond_b4
const-class v9, Ljava/lang/String;
if-ne v8, v9, :cond_c2
.line 260
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v2, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V
.line 261
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parseString()Ljava/lang/String;
move-result-object v2
goto :goto_e1
.line 262
:cond_c2
sget-object v9, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
if-ne v8, v9, :cond_d2
.line 263
iget-object v8, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v8, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V
.line 264
sget-object v7, Lcom/alibaba/fastjson/serializer/IntegerCodec;->instance:Lcom/alibaba/fastjson/serializer/IntegerCodec;
invoke-virtual {v7, p0, v2, v3}, Lcom/alibaba/fastjson/serializer/IntegerCodec;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
goto :goto_e1
.line 265
:cond_d2
iget-object v9, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->config:Lcom/alibaba/fastjson/parser/ParserConfig;
invoke-virtual {v9, v8, v2}, Lcom/alibaba/fastjson/parser/ParserConfig;->getDeserializer(Ljava/lang/Class;Ljava/lang/reflect/Type;)Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
move-result-object v8
.line 266
iget-object v9, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v9, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithChar(C)V
.line 267
invoke-interface {v8, p0, v2, v3}, Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;->deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
.line 268
:goto_e1
invoke-virtual {v6, p1, v2}, Lcom/alibaba/fastjson/parser/deserializer/FieldDeserializer;->setValue(Ljava/lang/Object;Ljava/lang/Object;)V
.line 269
iget-object v2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v6, v2, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
if-ne v6, v5, :cond_ec
goto/16 :goto_3b
:cond_ec
if-ne v6, v4, :cond_3b
.line 270
invoke-virtual {v2, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
return-void
.end method
.method public parseString()Ljava/lang/String;
.registers 7
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
const/16 v2, 0x10
const/4 v3, 0x4
if-ne v1, v3, :cond_6f
.line 2
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v0
.line 3
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
const/16 v4, 0x2c
const/16 v5, 0x1a
if-ne v3, v4, :cond_2f
.line 4
iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v3, v3, 0x1
iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 5
iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v3, v4, :cond_22
goto :goto_28
:cond_22
iget-object v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 6
invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_28
iput-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 7
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_6e
:cond_2f
const/16 v2, 0x5d
if-ne v3, v2, :cond_4d
.line 8
iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v2, v2, 0x1
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 9
iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v3, :cond_3e
goto :goto_44
:cond_3e
iget-object v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 10
invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_44
iput-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 11
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/16 v2, 0xf
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_6e
:cond_4d
const/16 v2, 0x7d
if-ne v3, v2, :cond_6b
.line 12
iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
add-int/lit8 v2, v2, 0x1
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I
.line 13
iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I
if-lt v2, v3, :cond_5c
goto :goto_62
:cond_5c
iget-object v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String;
.line 14
invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C
move-result v5
:goto_62
iput-char v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C
.line 15
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
const/16 v2, 0xd
iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I
goto :goto_6e
.line 16
:cond_6b
invoke-virtual {v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
:goto_6e
return-object v0
:cond_6f
const/4 v3, 0x2
if-ne v1, v3, :cond_7c
.line 17
invoke-virtual {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String;
move-result-object v0
.line 18
iget-object v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-virtual {v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
return-object v0
.line 19
:cond_7c
invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->parse()Ljava/lang/Object;
move-result-object v0
if-nez v0, :cond_84
const/4 v0, 0x0
return-object v0
.line 20
:cond_84
invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method protected popContext()V
.registers 5
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
iget-object v0, v0, Lcom/alibaba/fastjson/parser/ParseContext;->parent:Lcom/alibaba/fastjson/parser/ParseContext;
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
.line 2
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
iget v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
add-int/lit8 v2, v1, -0x1
const/4 v3, 0x0
aput-object v3, v0, v2
add-int/lit8 v1, v1, -0x1
.line 3
iput v1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
return-void
.end method
.method protected setContext(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)Lcom/alibaba/fastjson/parser/ParseContext;
.registers 6
.line 3
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-boolean v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z
if-eqz v0, :cond_8
const/4 p1, 0x0
return-object p1
.line 4
:cond_8
new-instance v0, Lcom/alibaba/fastjson/parser/ParseContext;
invoke-direct {v0, p1, p2, p3}, Lcom/alibaba/fastjson/parser/ParseContext;-><init>(Lcom/alibaba/fastjson/parser/ParseContext;Ljava/lang/Object;Ljava/lang/Object;)V
iput-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
.line 5
iget p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
add-int/lit8 p2, p1, 0x1
iput p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArrayIndex:I
.line 6
iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
if-nez p2, :cond_20
const/16 p2, 0x8
.line 7
new-array p2, p2, [Lcom/alibaba/fastjson/parser/ParseContext;
iput-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
goto :goto_31
.line 8
:cond_20
array-length p3, p2
if-lt p1, p3, :cond_31
.line 9
array-length p3, p2
mul-int/lit8 p3, p3, 0x3
div-int/lit8 p3, p3, 0x2
.line 10
new-array p3, p3, [Lcom/alibaba/fastjson/parser/ParseContext;
.line 11
array-length v0, p2
const/4 v1, 0x0
invoke-static {p2, v1, p3, v1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 12
iput-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
.line 13
:cond_31
:goto_31
iget-object p2, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contextArray:[Lcom/alibaba/fastjson/parser/ParseContext;
iget-object p3, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
aput-object p3, p2, p1
return-object p3
.end method
.method public setContext(Lcom/alibaba/fastjson/parser/ParseContext;)V
.registers 3
.line 1
iget-object v0, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->lexer:Lcom/alibaba/fastjson/parser/JSONLexer;
iget-boolean v0, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z
if-eqz v0, :cond_7
return-void
.line 2
:cond_7
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->contex:Lcom/alibaba/fastjson/parser/ParseContext;
return-void
.end method
.method public setDateFomrat(Ljava/text/DateFormat;)V
.registers 2
.line 1
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
return-void
.end method
.method public setDateFormat(Ljava/lang/String;)V
.registers 2
.line 1
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormatPattern:Ljava/lang/String;
const/4 p1, 0x0
.line 2
iput-object p1, p0, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->dateFormat:Ljava/text/DateFormat;
return-void
.end method