.class public final Lcom/alibaba/fastjson/parser/JSONScanner; .super Lcom/alibaba/fastjson/parser/JSONLexerBase; .source "JSONScanner.java" # instance fields .field public final ISO8601_LEN_0:I .field public final ISO8601_LEN_1:I .field public final ISO8601_LEN_2:I .field private final len:I .field private final text:Ljava/lang/String; # direct methods .method public constructor (Ljava/lang/String;)V .locals 1 .line 39 sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->(Ljava/lang/String;I)V return-void .end method .method public constructor (Ljava/lang/String;I)V .locals 0 .line 43 invoke-direct {p0, p2}, Lcom/alibaba/fastjson/parser/JSONLexerBase;->(I)V const-string p2, "0000-00-00" .line 154 invoke-virtual {p2}, Ljava/lang/String;->length()I move-result p2 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_0:I const-string p2, "0000-00-00T00:00:00" .line 155 invoke-virtual {p2}, Ljava/lang/String;->length()I move-result p2 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_1:I const-string p2, "0000-00-00T00:00:00.000" .line 156 invoke-virtual {p2}, Ljava/lang/String;->length()I move-result p2 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_2:I .line 45 iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; .line 46 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->len:I const/4 p1, -0x1 .line 47 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 49 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->next()C .line 50 iget-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const p2, 0xfeff if-ne p1, p2, :cond_0 .line 51 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->next()C :cond_0 return-void .end method .method public constructor ([CI)V .locals 1 .line 69 sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I invoke-direct {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->([CII)V return-void .end method .method public constructor ([CII)V .locals 2 .line 73 new-instance v0, Ljava/lang/String; const/4 v1, 0x0 invoke-direct {v0, p1, v1, p2}, Ljava/lang/String;->([CII)V invoke-direct {p0, v0, p3}, Lcom/alibaba/fastjson/parser/JSONScanner;->(Ljava/lang/String;I)V return-void .end method .method static charArrayCompare(Ljava/lang/String;I[C)Z .locals 5 .line 81 array-length v0, p2 add-int v1, v0, p1 .line 82 invoke-virtual {p0}, Ljava/lang/String;->length()I move-result v2 const/4 v3, 0x0 if-le v1, v2, :cond_0 return v3 :cond_0 const/4 v1, 0x0 :goto_0 if-ge v1, v0, :cond_2 .line 87 aget-char v2, p2, v1 add-int v4, p1, v1 invoke-virtual {p0, v4}, Ljava/lang/String;->charAt(I)C move-result v4 if-eq v2, v4, :cond_1 return v3 :cond_1 add-int/lit8 v1, v1, 0x1 goto :goto_0 :cond_2 const/4 p0, 0x1 return p0 .end method .method static checkDate(CCCCCCII)Z .locals 4 const/16 v0, 0x32 const/16 v1, 0x31 const/4 v2, 0x0 if-eq p0, v1, :cond_0 if-eq p0, v0, :cond_0 return v2 :cond_0 const/16 p0, 0x30 if-lt p1, p0, :cond_11 const/16 v3, 0x39 if-le p1, v3, :cond_1 goto :goto_4 :cond_1 if-lt p2, p0, :cond_10 if-le p2, v3, :cond_2 goto :goto_3 :cond_2 if-lt p3, p0, :cond_f if-le p3, v3, :cond_3 goto :goto_2 :cond_3 if-ne p4, p0, :cond_5 if-lt p5, v1, :cond_4 if-le p5, v3, :cond_6 :cond_4 return v2 :cond_5 if-ne p4, v1, :cond_e if-eq p5, p0, :cond_6 if-eq p5, v1, :cond_6 if-eq p5, v0, :cond_6 return v2 :cond_6 if-ne p6, p0, :cond_8 if-lt p7, v1, :cond_7 if-le p7, v3, :cond_c :cond_7 return v2 :cond_8 if-eq p6, v1, :cond_b if-ne p6, v0, :cond_9 goto :goto_0 :cond_9 const/16 p1, 0x33 if-ne p6, p1, :cond_a if-eq p7, p0, :cond_c if-eq p7, v1, :cond_c return v2 :cond_a return v2 :cond_b :goto_0 if-lt p7, p0, :cond_d if-le p7, v3, :cond_c goto :goto_1 :cond_c const/4 p0, 0x1 return p0 :cond_d :goto_1 return v2 :cond_e return v2 :cond_f :goto_2 return v2 :cond_10 :goto_3 return v2 :cond_11 :goto_4 return v2 .end method .method private checkTime(CCCCCC)Z .locals 4 const/16 v0, 0x39 const/4 v1, 0x0 const/16 v2, 0x30 if-ne p1, v2, :cond_1 if-lt p2, v2, :cond_0 if-le p2, v0, :cond_4 :cond_0 return v1 :cond_1 const/16 v3, 0x31 if-ne p1, v3, :cond_3 if-lt p2, v2, :cond_2 if-le p2, v0, :cond_4 :cond_2 return v1 :cond_3 const/16 v3, 0x32 if-ne p1, v3, :cond_e if-lt p2, v2, :cond_d const/16 p1, 0x34 if-le p2, p1, :cond_4 goto :goto_0 :cond_4 const/16 p1, 0x36 const/16 p2, 0x35 if-lt p3, v2, :cond_6 if-gt p3, p2, :cond_6 if-lt p4, v2, :cond_5 if-le p4, v0, :cond_7 :cond_5 return v1 :cond_6 if-ne p3, p1, :cond_c if-eq p4, v2, :cond_7 return v1 :cond_7 if-lt p5, v2, :cond_9 if-gt p5, p2, :cond_9 if-lt p6, v2, :cond_8 if-le p6, v0, :cond_a :cond_8 return v1 :cond_9 if-ne p5, p1, :cond_b if-eq p6, v2, :cond_a return v1 :cond_a const/4 p1, 0x1 return p1 :cond_b return v1 :cond_c return v1 :cond_d :goto_0 return v1 :cond_e return v1 .end method .method private setCalendar(CCCCCCCC)V .locals 2 .line 528 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->timeZone:Ljava/util/TimeZone; iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->locale:Ljava/util/Locale; invoke-static {v0, v1}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar; move-result-object v0 iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; .line 529 sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p1, v0, p1 mul-int/lit16 p1, p1, 0x3e8 sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p2, v0, p2 mul-int/lit8 p2, p2, 0x64 add-int/2addr p1, p2 sget-object p2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p2, p2, p3 mul-int/lit8 p2, p2, 0xa add-int/2addr p1, p2 sget-object p2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p2, p2, p4 add-int/2addr p1, p2 .line 530 sget-object p2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p2, p2, p5 mul-int/lit8 p2, p2, 0xa sget-object p3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p3, p3, p6 add-int/2addr p2, p3 const/4 p3, 0x1 sub-int/2addr p2, p3 .line 531 sget-object p4, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p4, p4, p7 mul-int/lit8 p4, p4, 0xa sget-object p5, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p5, p5, p8 add-int/2addr p4, p5 .line 532 iget-object p5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {p5, p3, p1}, Ljava/util/Calendar;->set(II)V .line 533 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/4 p3, 0x2 invoke-virtual {p1, p3, p2}, Ljava/util/Calendar;->set(II)V .line 534 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/4 p2, 0x5 invoke-virtual {p1, p2, p4}, Ljava/util/Calendar;->set(II)V return-void .end method # virtual methods .method public final addSymbol(IIILcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String; .locals 1 .line 104 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; invoke-virtual {p4, v0, p1, p2, p3}, Lcom/alibaba/fastjson/parser/SymbolTable;->addSymbol(Ljava/lang/String;III)Ljava/lang/String; move-result-object p1 return-object p1 .end method .method protected final arrayCopy(I[CII)V .locals 1 .line 1092 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; add-int/2addr p4, p1 invoke-virtual {v0, p1, p4, p2, p3}, Ljava/lang/String;->getChars(II[CI)V return-void .end method .method public bytesValue()[B .locals 3 .line 108 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->np:I add-int/lit8 v1, v1, 0x1 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I invoke-static {v0, v1, v2}, Lcom/alibaba/fastjson/util/IOUtils;->decodeFast(Ljava/lang/String;II)[B move-result-object v0 return-object v0 .end method .method public final charArrayCompare([C)Z .locals 2 .line 96 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-static {v0, v1, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charArrayCompare(Ljava/lang/String;I[C)Z move-result p1 return p1 .end method .method public final charAt(I)C .locals 1 .line 56 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->len:I if-lt p1, v0, :cond_0 const/16 p1, 0x1a return p1 .line 60 :cond_0 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result p1 return p1 .end method .method protected final copyTo(II[C)V .locals 2 .line 77 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; add-int/2addr p2, p1 const/4 v1, 0x0 invoke-virtual {v0, p1, p2, p3, v1}, Ljava/lang/String;->getChars(II[CI)V return-void .end method .method public final indexOf(CI)I .locals 1 .line 100 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; invoke-virtual {v0, p1, p2}, Ljava/lang/String;->indexOf(II)I move-result p1 return p1 .end method .method public info()Ljava/lang/String; .locals 4 .line 1096 new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "pos " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; const-string v1, ", json : " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; .line 1098 invoke-virtual {v1}, Ljava/lang/String;->length()I move-result v1 const/high16 v2, 0x10000 if-ge v1, v2, :cond_0 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; goto :goto_0 :cond_0 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; const/4 v3, 0x0 .line 1100 invoke-virtual {v1, v3, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v1 :goto_0 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 return-object v0 .end method .method public isEOF()Z .locals 3 .line 584 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->len:I const/4 v2, 0x1 if-eq v0, v1, :cond_1 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const/16 v1, 0x1a if-ne v0, v1, :cond_0 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v2 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->len:I if-ne v0, v1, :cond_0 goto :goto_0 :cond_0 const/4 v2, 0x0 :cond_1 :goto_0 return v2 .end method .method public final next()C .locals 1 .line 65 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C return v0 .end method .method public final numberString()Ljava/lang/String; .locals 3 .line 143 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->np:I iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I add-int/2addr v0, v1 add-int/lit8 v0, v0, -0x1 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 .line 145 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I const/16 v2, 0x4c if-eq v0, v2, :cond_0 const/16 v2, 0x53 if-eq v0, v2, :cond_0 const/16 v2, 0x42 if-eq v0, v2, :cond_0 const/16 v2, 0x46 if-eq v0, v2, :cond_0 const/16 v2, 0x44 if-ne v0, v2, :cond_1 :cond_0 add-int/lit8 v1, v1, -0x1 .line 151 :cond_1 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->np:I invoke-virtual {p0, v0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->subString(II)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public scanFieldBoolean([C)Z .locals 7 const/4 v0, 0x0 .line 1006 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 1008 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; iget v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-static {v1, v2, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charArrayCompare(Ljava/lang/String;I[C)Z move-result v1 if-nez v1, :cond_0 const/4 p1, -0x2 .line 1009 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 .line 1013 :cond_0 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I array-length p1, p1 add-int/2addr v1, p1 add-int/lit8 p1, v1, 0x1 .line 1015 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 const/16 v2, 0x74 const/16 v3, 0x65 const/4 v4, -0x1 const/4 v5, 0x1 if-ne v1, v2, :cond_4 add-int/lit8 v1, p1, 0x1 .line 1019 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 const/16 v2, 0x72 if-eq p1, v2, :cond_1 .line 1020 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 :cond_1 add-int/lit8 p1, v1, 0x1 .line 1023 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 const/16 v2, 0x75 if-eq v1, v2, :cond_2 .line 1024 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 :cond_2 add-int/lit8 v1, p1, 0x1 .line 1027 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 if-eq p1, v3, :cond_3 .line 1028 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 .line 1032 :cond_3 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 1033 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 const/4 v1, 0x1 goto :goto_0 :cond_4 const/16 v2, 0x66 if-ne v1, v2, :cond_f add-int/lit8 v1, p1, 0x1 .line 1036 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 const/16 v2, 0x61 if-eq p1, v2, :cond_5 .line 1037 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 :cond_5 add-int/lit8 p1, v1, 0x1 .line 1040 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 const/16 v2, 0x6c if-eq v1, v2, :cond_6 .line 1041 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 :cond_6 add-int/lit8 v1, p1, 0x1 .line 1044 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 const/16 v2, 0x73 if-eq p1, v2, :cond_7 .line 1045 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 :cond_7 add-int/lit8 p1, v1, 0x1 .line 1048 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 if-eq v1, v3, :cond_8 .line 1049 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 .line 1053 :cond_8 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 1054 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 const/4 v1, 0x0 :goto_0 const/16 v2, 0x10 const/16 v3, 0x2c if-ne p1, v3, :cond_9 .line 1062 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr p1, v5 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const/4 p1, 0x3 .line 1063 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 1064 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I goto :goto_2 :cond_9 const/16 v6, 0x7d if-ne p1, v6, :cond_e .line 1066 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr p1, v5 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 if-ne p1, v3, :cond_a .line 1068 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 1069 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr p1, v5 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_a const/16 v2, 0x5d if-ne p1, v2, :cond_b const/16 p1, 0xf .line 1071 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 1072 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr p1, v5 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_b if-ne p1, v6, :cond_c const/16 p1, 0xd .line 1074 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 1075 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr p1, v5 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_c const/16 v2, 0x1a if-ne p1, v2, :cond_d const/16 p1, 0x14 .line 1077 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I :goto_1 const/4 p1, 0x4 .line 1082 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I :goto_2 return v1 .line 1079 :cond_d iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 .line 1084 :cond_e iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 .line 1057 :cond_f iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 .end method .method public scanFieldInt([C)I .locals 9 const/4 v0, 0x0 .line 588 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 589 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 590 iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 592 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; iget v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-static {v3, v4, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charArrayCompare(Ljava/lang/String;I[C)Z move-result v3 if-nez v3, :cond_0 const/4 p1, -0x2 .line 593 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 .line 597 :cond_0 iget v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I array-length p1, p1 add-int/2addr v3, p1 add-int/lit8 p1, v3, 0x1 .line 599 invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v3 const/16 v4, 0x30 const/4 v5, -0x1 if-lt v3, v4, :cond_c const/16 v6, 0x39 if-gt v3, v6, :cond_c .line 603 sget-object v7, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v3, v7, v3 :goto_0 add-int/lit8 v7, p1, 0x1 .line 605 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 if-lt p1, v4, :cond_1 if-gt p1, v6, :cond_1 mul-int/lit8 v3, v3, 0xa .line 607 sget-object v8, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p1, v8, p1 add-int/2addr v3, p1 move p1, v7 goto :goto_0 :cond_1 const/16 v4, 0x2e if-ne p1, v4, :cond_2 .line 609 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 :cond_2 if-gez v3, :cond_3 .line 617 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 :cond_3 const/16 v4, 0x7d const/16 v6, 0x2c if-eq p1, v6, :cond_4 if-ne p1, v4, :cond_5 :cond_4 add-int/lit8 v7, v7, -0x1 .line 622 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I :cond_5 const/16 v7, 0x10 if-ne p1, v6, :cond_6 .line 630 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const/4 p1, 0x3 .line 631 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 632 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I return v3 :cond_6 if-ne p1, v4, :cond_b .line 637 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 if-ne p1, v6, :cond_7 .line 639 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 640 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_7 const/16 v6, 0x5d if-ne p1, v6, :cond_8 const/16 p1, 0xf .line 642 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 643 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_8 if-ne p1, v4, :cond_9 const/16 p1, 0xd .line 645 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 646 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_9 const/16 v4, 0x1a if-ne p1, v4, :cond_a const/16 p1, 0x14 .line 648 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I :goto_1 const/4 p1, 0x4 .line 655 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I goto :goto_2 .line 650 :cond_a iput v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 651 iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 652 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 :cond_b :goto_2 return v3 .line 625 :cond_c iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return v0 .end method .method public scanFieldLong([C)J .locals 12 const/4 v0, 0x0 .line 929 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 930 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 931 iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 933 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; iget v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-static {v2, v3, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charArrayCompare(Ljava/lang/String;I[C)Z move-result v2 const-wide/16 v3, 0x0 if-nez v2, :cond_0 const/4 p1, -0x2 .line 934 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-wide v3 .line 938 :cond_0 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I array-length p1, p1 add-int/2addr v2, p1 add-int/lit8 p1, v2, 0x1 .line 940 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v2 const/16 v5, 0x30 const/4 v6, -0x1 if-lt v2, v5, :cond_c const/16 v7, 0x39 if-gt v2, v7, :cond_c .line 944 sget-object v8, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v2, v8, v2 int-to-long v8, v2 :goto_0 add-int/lit8 v2, p1, 0x1 .line 946 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 if-lt p1, v5, :cond_1 if-gt p1, v7, :cond_1 const-wide/16 v10, 0xa mul-long v8, v8, v10 .line 948 sget-object v10, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p1, v10, p1 int-to-long v10, p1 add-long/2addr v8, v10 move p1, v2 goto :goto_0 :cond_1 const/16 v5, 0x2e if-ne p1, v5, :cond_2 .line 950 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-wide v3 :cond_2 const/16 v5, 0x7d const/16 v7, 0x2c if-eq p1, v7, :cond_3 if-ne p1, v5, :cond_4 :cond_3 add-int/lit8 v2, v2, -0x1 .line 954 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I :cond_4 cmp-long v2, v8, v3 if-gez v2, :cond_5 .line 960 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 961 iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 962 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-wide v3 :cond_5 const/16 v2, 0x10 if-ne p1, v7, :cond_6 .line 973 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const/4 p1, 0x3 .line 974 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 975 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I return-wide v8 :cond_6 if-ne p1, v5, :cond_b .line 978 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 if-ne p1, v7, :cond_7 .line 980 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 981 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_7 const/16 v2, 0x5d if-ne p1, v2, :cond_8 const/16 p1, 0xf .line 983 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 984 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_8 if-ne p1, v5, :cond_9 const/16 p1, 0xd .line 986 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 987 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_9 const/16 v2, 0x1a if-ne p1, v2, :cond_a const/16 p1, 0x14 .line 989 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I :goto_1 const/4 p1, 0x4 .line 996 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-wide v8 .line 991 :cond_a iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 992 iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 993 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-wide v3 .line 998 :cond_b iput v6, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-wide v3 .line 966 :cond_c iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 967 iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 968 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-wide v3 .end method .method public scanFieldString([C)Ljava/lang/String; .locals 9 const/4 v0, 0x0 .line 662 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 663 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 664 iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 666 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; iget v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-static {v3, v4, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charArrayCompare(Ljava/lang/String;I[C)Z move-result v3 if-nez v3, :cond_0 const/4 p1, -0x2 .line 667 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 668 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->stringDefaultValue()Ljava/lang/String; move-result-object p1 return-object p1 .line 671 :cond_0 iget v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I array-length p1, p1 add-int/2addr v3, p1 add-int/lit8 p1, v3, 0x1 .line 673 invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v3 const/16 v4, 0x22 const/4 v5, -0x1 if-eq v3, v4, :cond_1 .line 675 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 677 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->stringDefaultValue()Ljava/lang/String; move-result-object p1 return-object p1 .line 684 :cond_1 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; invoke-virtual {v3, v4, p1}, Ljava/lang/String;->indexOf(II)I move-result v3 if-eq v3, v5, :cond_d sub-int v4, v3, p1 .line 689 invoke-virtual {p0, p1, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->subString(II)Ljava/lang/String; move-result-object p1 const/4 v4, 0x0 .line 690 :goto_0 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v6 const/4 v7, 0x1 if-ge v4, v6, :cond_3 .line 691 invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C move-result v6 const/16 v8, 0x5c if-ne v6, v8, :cond_2 const/4 v0, 0x1 goto :goto_1 :cond_2 add-int/lit8 v4, v4, 0x1 goto :goto_0 :cond_3 :goto_1 if-eqz v0, :cond_4 .line 698 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 700 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->stringDefaultValue()Ljava/lang/String; move-result-object p1 return-object p1 :cond_4 add-int/2addr v3, v7 .line 703 invoke-virtual {p0, v3}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v4, 0x7d const/16 v6, 0x2c if-eq v0, v6, :cond_6 if-ne v0, v4, :cond_5 goto :goto_2 .line 710 :cond_5 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 712 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->stringDefaultValue()Ljava/lang/String; move-result-object p1 return-object p1 .line 706 :cond_6 :goto_2 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 707 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C if-ne v0, v6, :cond_7 .line 717 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v7 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const/4 v0, 0x3 .line 718 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object p1 :cond_7 if-ne v0, v4, :cond_c .line 721 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v7 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 if-ne v0, v6, :cond_8 const/16 v0, 0x10 .line 723 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 724 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v7 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_3 :cond_8 const/16 v3, 0x5d if-ne v0, v3, :cond_9 const/16 v0, 0xf .line 726 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 727 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v7 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_3 :cond_9 if-ne v0, v4, :cond_a const/16 v0, 0xd .line 729 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 730 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v7 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_3 :cond_a const/16 v3, 0x1a if-ne v0, v3, :cond_b const/16 v0, 0x14 .line 732 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I :goto_3 const/4 v0, 0x4 .line 739 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object p1 .line 734 :cond_b iput v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 735 iput-char v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 736 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 737 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->stringDefaultValue()Ljava/lang/String; move-result-object p1 return-object p1 .line 741 :cond_c iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 743 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONScanner;->stringDefaultValue()Ljava/lang/String; move-result-object p1 return-object p1 .line 686 :cond_d new-instance p1, Lcom/alibaba/fastjson/JSONException; const-string v0, "unclosed str" invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .end method .method public scanFieldStringArray([CLjava/lang/Class;)Ljava/util/Collection; .locals 8 .annotation system Ldalvik/annotation/Signature; value = { "([C", "Ljava/lang/Class<", "*>;)", "Ljava/util/Collection<", "Ljava/lang/String;", ">;" } .end annotation const/4 v0, 0x0 .line 818 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 820 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-static {v0, v1, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charArrayCompare(Ljava/lang/String;I[C)Z move-result v0 const/4 v1, 0x0 if-nez v0, :cond_0 const/4 p1, -0x2 .line 821 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v1 .line 827 :cond_0 const-class v0, Ljava/util/HashSet; invoke-virtual {p2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v0 if-eqz v0, :cond_1 .line 828 new-instance p2, Ljava/util/HashSet; invoke-direct {p2}, Ljava/util/HashSet;->()V goto :goto_0 .line 829 :cond_1 const-class v0, Ljava/util/ArrayList; invoke-virtual {p2, v0}, Ljava/lang/Class;->isAssignableFrom(Ljava/lang/Class;)Z move-result v0 if-eqz v0, :cond_2 .line 830 new-instance p2, Ljava/util/ArrayList; invoke-direct {p2}, Ljava/util/ArrayList;->()V goto :goto_0 .line 833 :cond_2 :try_start_0 invoke-virtual {p2}, Ljava/lang/Class;->newInstance()Ljava/lang/Object; move-result-object p2 check-cast p2, Ljava/util/Collection; :try_end_0 .catch Ljava/lang/Exception; {:try_start_0 .. :try_end_0} :catch_0 .line 839 :goto_0 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I array-length p1, p1 add-int/2addr v0, p1 add-int/lit8 p1, v0, 0x1 .line 841 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v2, 0x5b const/4 v3, -0x1 if-eq v0, v2, :cond_3 .line 844 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v1 :cond_3 add-int/lit8 v0, p1, 0x1 .line 848 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 :goto_1 const/16 v2, 0x22 if-eq p1, v2, :cond_4 .line 852 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v1 :cond_4 move p1, v0 :goto_2 add-int/lit8 v4, p1, 0x1 .line 859 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 if-ne p1, v2, :cond_f sub-int p1, v4, v0 add-int/lit8 p1, p1, -0x1 .line 862 invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->subString(II)Ljava/lang/String; move-result-object p1 .line 863 invoke-interface {p2, p1}, Ljava/util/Collection;->add(Ljava/lang/Object;)Z add-int/lit8 p1, v4, 0x1 .line 864 invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v2, 0x2c if-ne v0, v2, :cond_5 add-int/lit8 v0, p1, 0x1 .line 875 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 goto :goto_1 :cond_5 const/16 v4, 0x5d if-ne v0, v4, :cond_e add-int/lit8 v0, p1, 0x1 .line 880 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 .line 881 :goto_3 invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->isWhitespace(C)Z move-result v5 if-eqz v5, :cond_6 add-int/lit8 p1, v0, 0x1 .line 882 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 move v7, v0 move v0, p1 move p1, v7 goto :goto_3 .line 891 :cond_6 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I if-ne p1, v2, :cond_7 .line 893 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const/4 p1, 0x3 .line 894 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object p2 :cond_7 const/16 v5, 0x7d if-ne p1, v5, :cond_d .line 897 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 .line 898 :goto_4 invoke-static {p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->isWhitespace(C)Z move-result v6 if-eqz v6, :cond_8 add-int/lit8 p1, v0, 0x1 .line 899 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 .line 900 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I move v7, v0 move v0, p1 move p1, v7 goto :goto_4 :cond_8 if-ne p1, v2, :cond_9 const/16 p1, 0x10 .line 904 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 905 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_5 :cond_9 if-ne p1, v4, :cond_a const/16 p1, 0xf .line 907 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 908 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_5 :cond_a if-ne p1, v5, :cond_b const/16 p1, 0xd .line 910 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 911 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p1 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_5 :cond_b const/16 v0, 0x1a if-ne p1, v0, :cond_c const/16 v0, 0x14 .line 913 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 914 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C :goto_5 const/4 p1, 0x4 .line 919 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object p2 .line 916 :cond_c iput v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v1 .line 921 :cond_d iput v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v1 .line 887 :cond_e iput v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v1 :cond_f const/16 v5, 0x5c if-ne p1, v5, :cond_10 .line 869 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v1 :cond_10 move p1, v4 goto/16 :goto_2 :catch_0 move-exception p1 .line 835 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;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw p2 .end method .method public scanFieldSymbol([CLcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String; .locals 7 const/4 v0, 0x0 .line 750 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I .line 752 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; iget v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-static {v1, v2, p1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charArrayCompare(Ljava/lang/String;I[C)Z move-result v1 const/4 v2, 0x0 if-nez v1, :cond_0 const/4 p1, -0x2 .line 753 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v2 .line 757 :cond_0 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I array-length p1, p1 add-int/2addr v1, p1 add-int/lit8 p1, v1, 0x1 .line 759 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 const/16 v3, 0x22 const/4 v4, -0x1 if-eq v1, v3, :cond_1 .line 761 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v2 :cond_1 move v0, p1 const/4 v1, 0x0 :goto_0 add-int/lit8 v5, v0, 0x1 .line 769 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 if-ne v0, v3, :cond_8 .line 771 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I .line 772 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 774 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; sub-int/2addr v5, p1 add-int/lit8 v5, v5, -0x1 invoke-virtual {p2, v3, p1, v5, v1}, Lcom/alibaba/fastjson/parser/SymbolTable;->addSymbol(Ljava/lang/String;III)Ljava/lang/String; move-result-object p1 const/16 p2, 0x2c if-ne v0, p2, :cond_2 .line 787 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p2, p2, 0x1 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p2 iput-char p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const/4 p2, 0x3 .line 788 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object p1 :cond_2 const/16 v1, 0x7d if-ne v0, v1, :cond_7 .line 791 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 if-ne v0, p2, :cond_3 const/16 p2, 0x10 .line 793 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 794 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p2, p2, 0x1 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p2 iput-char p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_3 const/16 p2, 0x5d if-ne v0, p2, :cond_4 const/16 p2, 0xf .line 796 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 797 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p2, p2, 0x1 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p2 iput-char p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_4 if-ne v0, v1, :cond_5 const/16 p2, 0xd .line 799 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I .line 800 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 p2, p2, 0x1 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result p2 iput-char p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C goto :goto_1 :cond_5 const/16 p2, 0x1a if-ne v0, p2, :cond_6 const/16 p2, 0x14 .line 802 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I :goto_1 const/4 p2, 0x4 .line 807 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object p1 .line 804 :cond_6 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v2 .line 809 :cond_7 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v2 :cond_8 mul-int/lit8 v1, v1, 0x1f add-int/2addr v1, v0 const/16 v6, 0x5c if-ne v0, v6, :cond_9 .line 781 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->matchStat:I return-object v2 :cond_9 move v0, v5 goto/16 :goto_0 .end method .method public scanISO8601DateIfMatch()Z .locals 1 const/4 v0, 0x1 .line 159 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->scanISO8601DateIfMatch(Z)Z move-result v0 return v0 .end method .method public scanISO8601DateIfMatch(Z)Z .locals 33 move-object/from16 v9, p0 .line 163 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->len:I iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I sub-int v11, v0, v1 const/4 v12, 0x6 const/4 v13, 0x3 const/16 v14, 0xd const/4 v15, 0x2 const/16 v8, 0x39 const/4 v7, 0x5 const/16 v16, 0x1 const/16 v6, 0x30 const/4 v5, 0x0 if-nez p1, :cond_4 if-le v11, v14, :cond_4 .line 166 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 .line 167 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v1, v1, 0x1 invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 .line 168 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v2, v15 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v2 .line 169 iget v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v3, v13 invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v3 .line 170 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v4, v4, 0x4 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v4 .line 171 iget v14, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v14, v7 invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v14 .line 173 iget v13, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v13, v11 add-int/lit8 v13, v13, -0x1 invoke-virtual {v9, v13}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v13 .line 174 iget v7, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v7, v11 sub-int/2addr v7, v15 invoke-virtual {v9, v7}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v7 const/16 v15, 0x2f if-ne v0, v15, :cond_4 const/16 v0, 0x44 if-ne v1, v0, :cond_4 const/16 v0, 0x61 if-ne v2, v0, :cond_4 const/16 v0, 0x74 if-ne v3, v0, :cond_4 const/16 v0, 0x65 if-ne v4, v0, :cond_4 const/16 v0, 0x28 if-ne v14, v0, :cond_4 const/16 v0, 0x2f if-ne v13, v0, :cond_4 const/16 v0, 0x29 if-ne v7, v0, :cond_4 const/4 v0, -0x1 const/4 v0, 0x6 const/4 v1, -0x1 :goto_0 if-ge v0, v11, :cond_2 .line 179 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v2, v0 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v2 const/16 v3, 0x2b if-ne v2, v3, :cond_0 move v1, v0 goto :goto_1 :cond_0 if-lt v2, v6, :cond_2 if-le v2, v8, :cond_1 goto :goto_2 :cond_1 :goto_1 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_2 :goto_2 const/4 v0, -0x1 if-ne v1, v0, :cond_3 return v5 .line 189 :cond_3 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v12 sub-int/2addr v1, v0 .line 190 invoke-virtual {v9, v0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->subString(II)Ljava/lang/String; move-result-object v0 .line 191 invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v0 .line 193 iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->timeZone:Ljava/util/TimeZone; iget-object v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->locale:Ljava/util/Locale; invoke-static {v2, v3}, Ljava/util/Calendar;->getInstance(Ljava/util/TimeZone;Ljava/util/Locale;)Ljava/util/Calendar; move-result-object v2 iput-object v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; .line 194 iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v2, v0, v1}, Ljava/util/Calendar;->setTimeInMillis(J)V const/4 v0, 0x5 .line 196 iput v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I return v16 :cond_4 const/16 v0, 0x8 const/16 v14, 0xb const/16 v15, 0xe if-eq v11, v0, :cond_2c if-eq v11, v15, :cond_2c const/16 v0, 0x11 if-ne v11, v0, :cond_5 goto/16 :goto_e .line 272 :cond_5 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_0:I if-ge v11, v0, :cond_6 return v5 .line 276 :cond_6 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x4 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v1, 0x2d if-eq v0, v1, :cond_7 return v5 .line 279 :cond_7 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x7 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v1, 0x2d if-eq v0, v1, :cond_8 return v5 .line 283 :cond_8 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 .line 284 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v2 .line 285 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/4 v3, 0x2 add-int/2addr v0, v3 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v3 .line 286 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/4 v4, 0x3 add-int/2addr v0, v4 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v4 .line 287 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/4 v7, 0x5 add-int/2addr v0, v7 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v19 .line 288 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v12 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v29 .line 289 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x8 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v30 .line 290 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x9 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v31 move/from16 v21, v1 move/from16 v22, v2 move/from16 v23, v3 move/from16 v24, v4 move/from16 v25, v19 move/from16 v26, v29 move/from16 v27, v30 move/from16 v28, v31 .line 291 invoke-static/range {v21 .. v28}, Lcom/alibaba/fastjson/parser/JSONScanner;->checkDate(CCCCCCII)Z move-result v0 if-nez v0, :cond_9 return v5 :cond_9 move-object/from16 v0, p0 const/4 v12, 0x0 move/from16 v5, v19 const/16 v13, 0x30 move/from16 v6, v29 move/from16 v7, v30 move/from16 v8, v31 .line 295 invoke-direct/range {v0 .. v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->setCalendar(CCCCCCCC)V .line 297 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0xa invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v7 const/16 v0, 0x54 if-eq v7, v0, :cond_12 const/16 v0, 0x20 if-ne v7, v0, :cond_a if-nez p1, :cond_a goto/16 :goto_6 :cond_a const/16 v0, 0x22 if-eq v7, v0, :cond_11 const/16 v0, 0x1a if-ne v7, v0, :cond_b goto :goto_5 :cond_b const/16 v0, 0x2b if-eq v7, v0, :cond_d const/16 v0, 0x2d if-ne v7, v0, :cond_c goto :goto_3 :cond_c return v12 .line 313 :cond_d :goto_3 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->len:I const/16 v1, 0x10 if-ne v0, v1, :cond_10 .line 314 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/16 v1, 0xd add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v1, 0x3a if-ne v0, v1, :cond_f iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v15 .line 315 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 if-ne v0, v13, :cond_f iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0xf .line 316 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 if-eq v0, v13, :cond_e goto :goto_4 :cond_e const/16 v1, 0x30 const/16 v2, 0x30 const/16 v3, 0x30 const/16 v4, 0x30 const/16 v5, 0x30 const/16 v6, 0x30 move-object/from16 v0, p0 .line 320 invoke-virtual/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->setTime(CCCCCC)V .line 321 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v0, v15, v12}, Ljava/util/Calendar;->set(II)V .line 322 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v14 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/16 v2, 0xc add-int/2addr v1, v2 invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 invoke-virtual {v9, v7, v0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->setTimeZone(CCC)V return v16 :cond_f :goto_4 return v12 :cond_10 return v12 .line 303 :cond_11 :goto_5 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v0, v14, v12}, Ljava/util/Calendar;->set(II)V .line 304 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/16 v1, 0xc invoke-virtual {v0, v1, v12}, Ljava/util/Calendar;->set(II)V .line 305 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/16 v1, 0xd invoke-virtual {v0, v1, v12}, Ljava/util/Calendar;->set(II)V .line 306 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v0, v15, v12}, Ljava/util/Calendar;->set(II)V .line 308 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0xa iput v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iput-char v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C const/4 v8, 0x5 .line 310 iput v8, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I return v16 :cond_12 :goto_6 const/4 v8, 0x5 .line 299 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_1:I if-ge v11, v0, :cond_13 return v12 .line 330 :cond_13 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/16 v1, 0xd add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v1, 0x3a if-eq v0, v1, :cond_14 return v12 .line 333 :cond_14 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x10 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v1, 0x3a if-eq v0, v1, :cond_15 return v12 .line 337 :cond_15 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v14 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v7 .line 338 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/16 v1, 0xc add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v10 .line 339 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v15 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v14 .line 340 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0xf invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v17 .line 341 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x11 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v19 .line 342 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x12 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v21 move-object/from16 v0, p0 move v1, v7 move v2, v10 move v3, v14 move/from16 v4, v17 move/from16 v5, v19 move/from16 v6, v21 .line 344 invoke-direct/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->checkTime(CCCCCC)Z move-result v0 if-nez v0, :cond_16 return v12 :cond_16 move-object/from16 v0, p0 move v1, v7 move v2, v10 move v3, v14 move/from16 v4, v17 move/from16 v5, v19 move/from16 v6, v21 .line 348 invoke-virtual/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->setTime(CCCCCC)V .line 350 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x13 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 const/16 v1, 0x2e if-ne v0, v1, :cond_2a .line 352 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ISO8601_LEN_2:I if-ge v11, v0, :cond_17 return v12 .line 376 :cond_17 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x14 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 if-lt v0, v13, :cond_29 const/16 v7, 0x39 if-le v0, v7, :cond_18 goto/16 :goto_d .line 380 :cond_18 sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v0, v1, v0 .line 384 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v1, v1, 0x15 invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 if-lt v1, v13, :cond_19 if-gt v1, v7, :cond_19 mul-int/lit8 v0, v0, 0xa .line 386 sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v1, v2, v1 add-int/2addr v0, v1 move v1, v0 const/4 v0, 0x2 goto :goto_7 :cond_19 move v1, v0 const/4 v0, 0x1 :goto_7 const/4 v2, 0x2 if-ne v0, v2, :cond_1a .line 392 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v2, v2, 0x16 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v2 if-lt v2, v13, :cond_1a if-gt v2, v7, :cond_1a mul-int/lit8 v1, v1, 0xa .line 394 sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v0, v0, v2 add-int/2addr v1, v0 const/4 v0, 0x3 .line 399 :cond_1a iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v2, v15, v1}, Ljava/util/Calendar;->set(II)V .line 402 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v1, v1, 0x14 add-int/2addr v1, v0 invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 const/16 v2, 0x2b if-eq v1, v2, :cond_1e const/16 v2, 0x2d if-ne v1, v2, :cond_1b goto :goto_8 :cond_1b const/16 v2, 0x5a if-ne v1, v2, :cond_1d .line 440 iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v1}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone; move-result-object v1 invoke-virtual {v1}, Ljava/util/TimeZone;->getRawOffset()I move-result v1 if-eqz v1, :cond_1c .line 441 invoke-static {v12}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String; move-result-object v1 .line 442 array-length v2, v1 if-lez v2, :cond_1c .line 443 aget-object v1, v1, v12 invoke-static {v1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; move-result-object v1 .line 444 iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v2, v1}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V :cond_1c const/16 v32, 0x1 goto/16 :goto_a :cond_1d const/16 v32, 0x0 goto :goto_a .line 404 :cond_1e :goto_8 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v2, v2, 0x14 add-int/2addr v2, v0 add-int/lit8 v2, v2, 0x1 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v2 if-lt v2, v13, :cond_28 const/16 v3, 0x31 if-le v2, v3, :cond_1f goto/16 :goto_c .line 409 :cond_1f iget v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v3, v3, 0x14 add-int/2addr v3, v0 const/4 v4, 0x2 add-int/2addr v3, v4 invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v3 if-lt v3, v13, :cond_27 if-le v3, v7, :cond_20 goto :goto_b .line 414 :cond_20 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v4, v4, 0x14 add-int/2addr v4, v0 const/4 v5, 0x3 add-int/2addr v4, v5 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v4 const/16 v5, 0x3a if-ne v4, v5, :cond_23 .line 416 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v4, v4, 0x14 add-int/2addr v4, v0 add-int/lit8 v4, v4, 0x4 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v4 if-eq v4, v13, :cond_21 return v12 .line 421 :cond_21 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v4, v4, 0x14 add-int/2addr v4, v0 add-int/2addr v4, v8 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v4 if-eq v4, v13, :cond_22 return v12 :cond_22 const/16 v32, 0x6 goto :goto_9 :cond_23 if-ne v4, v13, :cond_25 .line 427 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v4, v4, 0x14 add-int/2addr v4, v0 add-int/lit8 v4, v4, 0x4 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v4 if-eq v4, v13, :cond_24 return v12 :cond_24 const/16 v32, 0x5 goto :goto_9 :cond_25 const/16 v32, 0x3 .line 436 :goto_9 invoke-virtual {v9, v1, v2, v3}, Lcom/alibaba/fastjson/parser/JSONScanner;->setTimeZone(CCC)V .line 449 :goto_a iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x14 add-int v0, v0, v32 add-int/2addr v1, v0 invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 const/16 v2, 0x1a if-eq v1, v2, :cond_26 const/16 v2, 0x22 if-eq v1, v2, :cond_26 return v12 .line 453 :cond_26 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v1, v0 iput v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 iput-char v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 455 iput v8, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I return v16 :cond_27 :goto_b return v12 :cond_28 :goto_c return v12 :cond_29 :goto_d return v12 .line 356 :cond_2a iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v1, v15, v12}, Ljava/util/Calendar;->set(II)V .line 358 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v1, v1, 0x13 iput v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 iput-char v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->ch:C .line 360 iput v8, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I const/16 v1, 0x5a if-ne v0, v1, :cond_2b .line 364 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v0}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone; move-result-object v0 invoke-virtual {v0}, Ljava/util/TimeZone;->getRawOffset()I move-result v0 if-eqz v0, :cond_2b .line 365 invoke-static {v12}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String; move-result-object v0 .line 366 array-length v1, v0 if-lez v1, :cond_2b .line 367 aget-object v0, v0, v12 invoke-static {v0}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; move-result-object v0 .line 368 iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v1, v0}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V :cond_2b return v16 :cond_2c :goto_e const/16 v7, 0x39 const/4 v8, 0x5 const/4 v12, 0x0 const/16 v13, 0x30 if-eqz p1, :cond_2d return v12 .line 206 :cond_2d iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 .line 207 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v2 .line 208 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/4 v3, 0x2 add-int/2addr v0, v3 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v3 .line 209 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/4 v4, 0x3 add-int/2addr v0, v4 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v4 .line 210 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x4 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v5 .line 211 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v8 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v6 .line 212 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/4 v10, 0x6 add-int/2addr v0, v10 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v10 .line 213 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x7 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v18 move/from16 v21, v1 move/from16 v22, v2 move/from16 v23, v3 move/from16 v24, v4 move/from16 v25, v5 move/from16 v26, v6 move/from16 v27, v10 move/from16 v28, v18 .line 215 invoke-static/range {v21 .. v28}, Lcom/alibaba/fastjson/parser/JSONScanner;->checkDate(CCCCCCII)Z move-result v0 if-nez v0, :cond_2e return v12 :cond_2e move-object/from16 v0, p0 move v7, v10 const/4 v10, 0x5 move/from16 v8, v18 .line 219 invoke-direct/range {v0 .. v8}, Lcom/alibaba/fastjson/parser/JSONScanner;->setCalendar(CCCCCCCC)V const/16 v0, 0x8 if-eq v11, v0, :cond_37 .line 223 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x8 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v7 .line 224 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0x9 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v8 .line 225 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v0, v0, 0xa invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v18 .line 226 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v14 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v19 .line 227 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/16 v1, 0xc add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v20 .line 228 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I const/16 v1, 0xd add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v21 move-object/from16 v0, p0 move v1, v7 move v2, v8 move/from16 v3, v18 move/from16 v4, v19 move/from16 v5, v20 move/from16 v6, v21 .line 230 invoke-direct/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONScanner;->checkTime(CCCCCC)Z move-result v0 if-nez v0, :cond_2f return v12 :cond_2f const/16 v0, 0x11 if-ne v11, v0, :cond_36 .line 235 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/2addr v0, v15 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v0 .line 236 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v1, v1, 0xf invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v1 .line 237 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->bp:I add-int/lit8 v2, v2, 0x10 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONScanner;->charAt(I)C move-result v2 if-lt v0, v13, :cond_35 const/16 v3, 0x39 if-le v0, v3, :cond_30 goto :goto_11 :cond_30 if-lt v1, v13, :cond_34 if-le v1, v3, :cond_31 goto :goto_10 :cond_31 if-lt v2, v13, :cond_33 if-le v2, v3, :cond_32 goto :goto_f .line 248 :cond_32 sget-object v3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v0, v3, v0 mul-int/lit8 v0, v0, 0x64 sget-object v3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v1, v3, v1 mul-int/lit8 v1, v1, 0xa add-int/2addr v0, v1 sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v1, v1, v2 add-int/2addr v0, v1 move v5, v0 goto :goto_12 :cond_33 :goto_f return v12 :cond_34 :goto_10 return v12 :cond_35 :goto_11 return v12 :cond_36 const/4 v5, 0x0 .line 253 :goto_12 sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v0, v0, v7 mul-int/lit8 v0, v0, 0xa sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v1, v1, v8 add-int/2addr v0, v1 .line 254 sget-object v1, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v1, v1, v18 mul-int/lit8 v1, v1, 0xa sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v2, v2, v19 add-int/2addr v1, v2 .line 255 sget-object v2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v2, v2, v20 mul-int/lit8 v2, v2, 0xa sget-object v3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget v3, v3, v21 add-int/2addr v2, v3 goto :goto_13 :cond_37 const/4 v0, 0x0 const/4 v1, 0x0 const/4 v2, 0x0 const/4 v5, 0x0 .line 263 :goto_13 iget-object v3, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v3, v14, v0}, Ljava/util/Calendar;->set(II)V .line 264 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/16 v3, 0xc invoke-virtual {v0, v3, v1}, Ljava/util/Calendar;->set(II)V .line 265 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/16 v1, 0xd invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->set(II)V .line 266 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {v0, v15, v5}, Ljava/util/Calendar;->set(II)V .line 268 iput v10, v9, Lcom/alibaba/fastjson/parser/JSONScanner;->token:I return v16 .end method .method protected setTime(CCCCCC)V .locals 1 .line 460 sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p1, v0, p1 mul-int/lit8 p1, p1, 0xa sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p2, v0, p2 add-int/2addr p1, p2 .line 461 sget-object p2, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p2, p2, p3 mul-int/lit8 p2, p2, 0xa sget-object p3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p3, p3, p4 add-int/2addr p2, p3 .line 462 sget-object p3, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p3, p3, p5 mul-int/lit8 p3, p3, 0xa sget-object p4, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p4, p4, p6 add-int/2addr p3, p4 .line 463 iget-object p4, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/16 p5, 0xb invoke-virtual {p4, p5, p1}, Ljava/util/Calendar;->set(II)V .line 464 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/16 p4, 0xc invoke-virtual {p1, p4, p2}, Ljava/util/Calendar;->set(II)V .line 465 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; const/16 p2, 0xd invoke-virtual {p1, p2, p3}, Ljava/util/Calendar;->set(II)V return-void .end method .method protected setTimeZone(CCC)V .locals 1 .line 469 sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p2, v0, p2 mul-int/lit8 p2, p2, 0xa sget-object v0, Lcom/alibaba/fastjson/parser/JSONScanner;->digits:[I aget p3, v0, p3 add-int/2addr p2, p3 mul-int/lit16 p2, p2, 0xe10 mul-int/lit16 p2, p2, 0x3e8 const/16 p3, 0x2d if-ne p1, p3, :cond_0 neg-int p2, p2 .line 474 :cond_0 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {p1}, Ljava/util/Calendar;->getTimeZone()Ljava/util/TimeZone; move-result-object p1 invoke-virtual {p1}, Ljava/util/TimeZone;->getRawOffset()I move-result p1 if-eq p1, p2, :cond_1 .line 475 invoke-static {p2}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String; move-result-object p1 .line 476 array-length p2, p1 if-lez p2, :cond_1 const/4 p2, 0x0 .line 477 aget-object p1, p1, p2 invoke-static {p1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; move-result-object p1 .line 478 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->calendar:Ljava/util/Calendar; invoke-virtual {p2, p1}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V :cond_1 return-void .end method .method public final stringVal()Ljava/lang/String; .locals 4 .line 119 iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->hasSpecial:Z if-nez v0, :cond_0 .line 121 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->np:I add-int/lit8 v0, v0, 0x1 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I invoke-virtual {p0, v0, v1}, Lcom/alibaba/fastjson/parser/JSONScanner;->subString(II)Ljava/lang/String; move-result-object v0 return-object v0 .line 123 :cond_0 new-instance v0, Ljava/lang/String; iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sbuf:[C const/4 v2, 0x0 iget v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sp:I invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;->([CII)V return-object v0 .end method .method public final subString(II)Ljava/lang/String; .locals 4 .line 128 sget-boolean v0, Lcom/alibaba/fastjson/util/ASMUtils;->IS_ANDROID:Z if-eqz v0, :cond_1 .line 129 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sbuf:[C array-length v0, v0 const/4 v1, 0x0 if-ge p2, v0, :cond_0 .line 130 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; add-int v2, p1, p2 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sbuf:[C invoke-virtual {v0, p1, v2, v3, v1}, Ljava/lang/String;->getChars(II[CI)V .line 131 new-instance p1, Ljava/lang/String; iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->sbuf:[C invoke-direct {p1, v0, v1, p2}, Ljava/lang/String;->([CII)V return-object p1 .line 133 :cond_0 new-array v0, p2, [C .line 134 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; add-int/2addr p2, p1 invoke-virtual {v2, p1, p2, v0, v1}, Ljava/lang/String;->getChars(II[CI)V .line 135 new-instance p1, Ljava/lang/String; invoke-direct {p1, v0}, Ljava/lang/String;->([C)V return-object p1 .line 138 :cond_1 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONScanner;->text:Ljava/lang/String; add-int/2addr p2, p1 invoke-virtual {v0, p1, p2}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 return-object p1 .end method