StackTraceElementDeserializer.smali
.class public Lcom/alibaba/fastjson/parser/deserializer/StackTraceElementDeserializer;
.super Ljava/lang/Object;
.source "StackTraceElementDeserializer.java"
# interfaces
.implements Lcom/alibaba/fastjson/parser/deserializer/ObjectDeserializer;
# static fields
.field public static final instance:Lcom/alibaba/fastjson/parser/deserializer/StackTraceElementDeserializer;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 14
new-instance v0, Lcom/alibaba/fastjson/parser/deserializer/StackTraceElementDeserializer;
invoke-direct {v0}, Lcom/alibaba/fastjson/parser/deserializer/StackTraceElementDeserializer;-><init>()V
sput-object v0, Lcom/alibaba/fastjson/parser/deserializer/StackTraceElementDeserializer;->instance:Lcom/alibaba/fastjson/parser/deserializer/StackTraceElementDeserializer;
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 12
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
# virtual methods
.method public deserialze(Lcom/alibaba/fastjson/parser/DefaultJSONParser;Ljava/lang/reflect/Type;Ljava/lang/Object;)Ljava/lang/Object;
.registers 17
.param p1, "parser" # Lcom/alibaba/fastjson/parser/DefaultJSONParser;
.param p2, "type" # Ljava/lang/reflect/Type;
.param p3, "fieldName" # Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/alibaba/fastjson/parser/DefaultJSONParser;",
"Ljava/lang/reflect/Type;",
"Ljava/lang/Object;",
")TT;"
}
.end annotation
.line 18
invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getLexer()Lcom/alibaba/fastjson/parser/JSONLexer;
move-result-object v0
.line 19
.local v0, "lexer":Lcom/alibaba/fastjson/parser/JSONLexer;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
const/16 v2, 0x8
if-ne v1, v2, :cond_11
.line 20
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V
.line 21
const/4 v1, 0x0
return-object v1
.line 24
:cond_11
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
const/16 v3, 0xc
const/16 v4, 0x10
if-eq v1, v3, :cond_42
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v1
if-ne v1, v4, :cond_22
goto :goto_42
.line 25
:cond_22
new-instance v1, Lcom/alibaba/fastjson/JSONException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v3, "syntax error: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v3
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 {v1, v2}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v1
.line 28
:cond_42
:goto_42
const/4 v1, 0x0
.line 29
.local v1, "declaringClass":Ljava/lang/String;
const/4 v3, 0x0
.line 30
.local v3, "methodName":Ljava/lang/String;
const/4 v5, 0x0
.line 31
.local v5, "fileName":Ljava/lang/String;
const/4 v6, 0x0
.line 35
.local v6, "lineNumber":I
:goto_46
invoke-virtual {p1}, Lcom/alibaba/fastjson/parser/DefaultJSONParser;->getSymbolTable()Lcom/alibaba/fastjson/parser/SymbolTable;
move-result-object v7
invoke-interface {v0, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String;
move-result-object v7
.line 37
.local v7, "key":Ljava/lang/String;
const/16 v8, 0xd
if-nez v7, :cond_6c
.line 38
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v8, :cond_5d
.line 39
invoke-interface {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 40
goto/16 :goto_16c
.line 42
:cond_5d
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v4, :cond_6c
.line 43
sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->AllowArbitraryCommas:Lcom/alibaba/fastjson/parser/Feature;
invoke-interface {v0, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z
move-result v9
if-eqz v9, :cond_6c
.line 44
goto :goto_46
.line 49
:cond_6c
const/4 v9, 0x4
invoke-interface {v0, v9}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextTokenWithColon(I)V
.line 50
const-string v10, "className"
invoke-virtual {v10, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
const-string/jumbo v11, "syntax error"
if-eqz v10, :cond_96
.line 51
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v2, :cond_84
.line 52
const/4 v1, 0x0
goto/16 :goto_162
.line 53
:cond_84
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v9, :cond_90
.line 54
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v1
goto/16 :goto_162
.line 56
:cond_90
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v11}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 58
:cond_96
const-string v10, "methodName"
invoke-virtual {v10, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_b9
.line 59
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v2, :cond_a7
.line 60
const/4 v3, 0x0
goto/16 :goto_162
.line 61
:cond_a7
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v9, :cond_b3
.line 62
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v3
goto/16 :goto_162
.line 64
:cond_b3
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v11}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 66
:cond_b9
const-string v10, "fileName"
invoke-virtual {v10, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_dc
.line 67
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v2, :cond_ca
.line 68
const/4 v5, 0x0
goto/16 :goto_162
.line 69
:cond_ca
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v9, :cond_d6
.line 70
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v5
goto/16 :goto_162
.line 72
:cond_d6
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v11}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 74
:cond_dc
const-string v10, "lineNumber"
invoke-virtual {v10, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_ff
.line 75
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v2, :cond_ed
.line 76
const/4 v6, 0x0
goto/16 :goto_162
.line 77
:cond_ed
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
const/4 v10, 0x2
if-ne v9, v10, :cond_f9
.line 78
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->intValue()I
move-result v6
goto :goto_162
.line 80
:cond_f9
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v11}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 82
:cond_ff
const-string v10, "nativeMethod"
invoke-virtual {v10, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_12d
.line 83
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v2, :cond_111
.line 84
invoke-interface {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_162
.line 85
:cond_111
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
const/4 v10, 0x6
if-ne v9, v10, :cond_11c
.line 86
invoke-interface {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_162
.line 87
:cond_11c
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
const/4 v10, 0x7
if-ne v9, v10, :cond_127
.line 88
invoke-interface {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
goto :goto_162
.line 90
:cond_127
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v11}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 92
:cond_12d
sget-object v10, Lcom/alibaba/fastjson/JSON;->DEFAULT_TYPE_KEY:Ljava/lang/String;
const-string/jumbo v12, "syntax error : "
if-ne v7, v10, :cond_17a
.line 93
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v10
if-ne v10, v9, :cond_15c
.line 94
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String;
move-result-object v9
.line 95
.local v9, "elementType":Ljava/lang/String;
const-string v10, "java.lang.StackTraceElement"
invoke-virtual {v9, v10}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_147
.line 98
.end local v9 # "elementType":Ljava/lang/String;
goto :goto_162
.line 96
.restart local v9 # "elementType":Ljava/lang/String;
:cond_147
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v2, v4}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 99
.end local v9 # "elementType":Ljava/lang/String;
:cond_15c
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v2, :cond_174
.line 107
:goto_162
invoke-interface {v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->token()I
move-result v9
if-ne v9, v8, :cond_172
.line 108
invoke-interface {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken(I)V
.line 109
nop
.line 112
.end local v7 # "key":Ljava/lang/String;
:goto_16c
new-instance v2, Ljava/lang/StackTraceElement;
invoke-direct {v2, v1, v3, v5, v6}, Ljava/lang/StackTraceElement;-><init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V
return-object v2
.line 111
:cond_172
goto/16 :goto_46
.line 100
.restart local v7 # "key":Ljava/lang/String;
:cond_174
new-instance v2, Lcom/alibaba/fastjson/JSONException;
invoke-direct {v2, v11}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
throw v2
.line 104
:cond_17a
new-instance v2, Lcom/alibaba/fastjson/JSONException;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v4, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v2, v4}, Lcom/alibaba/fastjson/JSONException;-><init>(Ljava/lang/String;)V
goto :goto_190
:goto_18f
throw v2
:goto_190
goto :goto_18f
.end method
.method public getFastMatchToken()I
.registers 2
.line 116
const/16 v0, 0xc
return v0
.end method