.class public final Lcom/alibaba/fastjson/parser/JSONLexer; .super Ljava/lang/Object; .source "JSONLexer.java" # static fields .field public static final CA:[C .field public static final END:I = 0x4 .field public static final EOI:C = '\u001a' .field static final IA:[I .field public static final NOT_MATCH:I = -0x1 .field public static final NOT_MATCH_NAME:I = -0x2 .field public static final UNKNOWN:I = 0x0 .field private static V6:Z = false .field public static final VALUE:I = 0x3 .field protected static final digits:[I .field public static final firstIdentifierFlags:[Z .field public static final identifierFlags:[Z .field private static final sbufLocal:Ljava/lang/ThreadLocal; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ThreadLocal<", "[C>;" } .end annotation .end field # instance fields .field protected bp:I .field public calendar:Ljava/util/Calendar; .field protected ch:C .field public disableCircularReferenceDetect:Z .field protected eofPos:I .field protected exp:Z .field public features:I .field protected fieldHash:J .field protected hasSpecial:Z .field protected isDouble:Z .field protected final len:I .field public locale:Ljava/util/Locale; .field public matchStat:I .field protected np:I .field protected pos:I .field protected sbuf:[C .field protected sp:I .field protected stringDefaultValue:Ljava/lang/String; .field protected final text:Ljava/lang/String; .field public timeZone:Ljava/util/TimeZone; .field protected token:I # direct methods .method static constructor ()V .registers 13 const/4 v0, -0x1 .line 39 :try_start_1 const-string v1, "android.os.Build$VERSION" invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class; move-result-object v1 .line 40 const-string v2, "SDK_INT" invoke-virtual {v1, v2}, Ljava/lang/Class;->getField(Ljava/lang/String;)Ljava/lang/reflect/Field; move-result-object v1 const/4 v2, 0x0 .line 41 invoke-virtual {v1, v2}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I move-result v1 :try_end_12 .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_12} :catch_13 goto :goto_14 :catch_13 move v1, v0 :goto_14 const/16 v2, 0x17 const/4 v3, 0x0 const/4 v4, 0x1 if-lt v1, v2, :cond_1c move v1, v4 goto :goto_1d :cond_1c move v1, v3 .line 46 :goto_1d sput-boolean v1, Lcom/alibaba/fastjson/parser/JSONLexer;->V6:Z .line 79 new-instance v1, Ljava/lang/ThreadLocal; invoke-direct {v1}, Ljava/lang/ThreadLocal;->()V sput-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbufLocal:Ljava/lang/ThreadLocal; const/16 v1, 0x67 .line 1942 new-array v1, v1, [I sput-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I const/16 v1, 0x30 move v2, v1 :goto_2f const/16 v5, 0x39 if-gt v2, v5, :cond_3c .line 1946 sget-object v5, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I add-int/lit8 v6, v2, -0x30 aput v6, v5, v2 add-int/lit8 v2, v2, 0x1 goto :goto_2f :cond_3c const/16 v2, 0x61 move v6, v2 :goto_3f const/16 v7, 0x66 if-gt v6, v7, :cond_4c .line 1950 sget-object v7, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I add-int/lit8 v8, v6, -0x57 aput v8, v7, v6 add-int/lit8 v6, v6, 0x1 goto :goto_3f :cond_4c const/16 v6, 0x41 move v7, v6 :goto_4f const/16 v8, 0x46 if-gt v7, v8, :cond_5c .line 1953 sget-object v8, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I add-int/lit8 v9, v7, -0x37 aput v9, v8, v7 add-int/lit8 v7, v7, 0x1 goto :goto_4f .line 4711 :cond_5c const-string v7, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" invoke-virtual {v7}, Ljava/lang/String;->toCharArray()[C move-result-object v7 sput-object v7, Lcom/alibaba/fastjson/parser/JSONLexer;->CA:[C const/16 v8, 0x100 .line 4712 new-array v9, v8, [I sput-object v9, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I .line 4714 invoke-static {v9, v0}, Ljava/util/Arrays;->fill([II)V .line 4715 array-length v0, v7 move v7, v3 :goto_6f if-ge v7, v0, :cond_7c .line 4716 sget-object v9, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I sget-object v10, Lcom/alibaba/fastjson/parser/JSONLexer;->CA:[C aget-char v10, v10, v7 aput v7, v9, v10 add-int/lit8 v7, v7, 0x1 goto :goto_6f .line 4718 :cond_7c sget-object v0, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I const/16 v7, 0x3d aput v3, v0, v7 .line 4777 new-array v0, v8, [Z sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexer;->firstIdentifierFlags:[Z move v0, v3 .line 4779 :goto_87 sget-object v7, Lcom/alibaba/fastjson/parser/JSONLexer;->firstIdentifierFlags:[Z array-length v9, v7 const/16 v10, 0x7a const/16 v11, 0x5f const/16 v12, 0x5a if-ge v0, v9, :cond_a8 if-lt v0, v6, :cond_99 if-gt v0, v12, :cond_99 .line 4781 aput-boolean v4, v7, v0 goto :goto_a4 :cond_99 if-lt v0, v2, :cond_a0 if-gt v0, v10, :cond_a0 .line 4783 aput-boolean v4, v7, v0 goto :goto_a4 :cond_a0 if-ne v0, v11, :cond_a4 .line 4785 aput-boolean v4, v7, v0 :cond_a4 :goto_a4 add-int/lit8 v0, v0, 0x1 int-to-char v0, v0 goto :goto_87 .line 4790 :cond_a8 new-array v0, v8, [Z sput-object v0, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z .line 4793 :goto_ac sget-object v0, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z array-length v7, v0 if-ge v3, v7, :cond_ce if-lt v3, v6, :cond_b8 if-gt v3, v12, :cond_b8 .line 4795 aput-boolean v4, v0, v3 goto :goto_ca :cond_b8 if-lt v3, v2, :cond_bf if-gt v3, v10, :cond_bf .line 4797 aput-boolean v4, v0, v3 goto :goto_ca :cond_bf if-ne v3, v11, :cond_c4 .line 4799 aput-boolean v4, v0, v3 goto :goto_ca :cond_c4 if-lt v3, v1, :cond_ca if-gt v3, v5, :cond_ca .line 4801 aput-boolean v4, v0, v3 :cond_ca :goto_ca add-int/lit8 v3, v3, 0x1 int-to-char v3, v3 goto :goto_ac :cond_ce return-void .end method .method public constructor (Ljava/lang/String;)V .registers 3 .line 90 sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I invoke-direct {p0, p1, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->(Ljava/lang/String;I)V return-void .end method .method public constructor (Ljava/lang/String;I)V .registers 8 .line 101 invoke-direct {p0}, Ljava/lang/Object;->()V .line 51 sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I const/4 v0, 0x0 .line 63 iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->exp:Z .line 64 iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z .line 73 sget-object v1, Lcom/alibaba/fastjson/JSON;->defaultTimeZone:Ljava/util/TimeZone; iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->timeZone:Ljava/util/TimeZone; .line 74 sget-object v1, Lcom/alibaba/fastjson/JSON;->defaultLocale:Ljava/util/Locale; iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->locale:Ljava/util/Locale; const/4 v1, 0x0 .line 75 iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; .line 77 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 102 sget-object v2, Lcom/alibaba/fastjson/parser/JSONLexer;->sbufLocal:Ljava/lang/ThreadLocal; invoke-virtual {v2}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; move-result-object v2 check-cast v2, [C iput-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C if-nez v2, :cond_2b const/16 v2, 0x200 .line 105 new-array v2, v2, [C iput-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C .line 108 :cond_2b iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I .line 110 iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 111 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v2 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const/4 v3, -0x1 const/4 v4, 0x1 add-int/2addr v3, v4 .line 116 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I if-lt v3, v2, :cond_3f const/16 p1, 0x1a goto :goto_43 .line 119 :cond_3f invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_43 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const v2, 0xfeff if-ne p1, v2, :cond_4d .line 122 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 125 :cond_4d sget-object p1, Lcom/alibaba/fastjson/parser/Feature;->InitStringFieldAsEmpty:Lcom/alibaba/fastjson/parser/Feature; iget p1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr p1, p2 if-eqz p1, :cond_56 const-string v1, "" :cond_56 iput-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String; .line 128 sget-object p1, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature; iget p1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr p1, p2 if-eqz p1, :cond_60 move v0, v4 :cond_60 iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z return-void .end method .method public constructor ([CI)V .registers 4 .line 94 sget v0, Lcom/alibaba/fastjson/JSON;->DEFAULT_PARSER_FEATURE:I invoke-direct {p0, p1, p2, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->([CII)V return-void .end method .method public constructor ([CII)V .registers 6 .line 98 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/JSONLexer;->(Ljava/lang/String;I)V return-void .end method .method static checkDate(CCCCCCII)Z .registers 12 const/4 v0, 0x0 const/16 v1, 0x31 if-lt p0, v1, :cond_49 const/16 v2, 0x33 if-le p0, v2, :cond_a goto :goto_49 :cond_a const/16 p0, 0x30 if-lt p1, p0, :cond_49 const/16 v3, 0x39 if-le p1, v3, :cond_13 goto :goto_49 :cond_13 if-lt p2, p0, :cond_49 if-le p2, v3, :cond_18 goto :goto_49 :cond_18 if-lt p3, p0, :cond_49 if-le p3, v3, :cond_1d goto :goto_49 :cond_1d const/16 p1, 0x32 if-ne p4, p0, :cond_26 if-lt p5, v1, :cond_25 if-le p5, v3, :cond_2f :cond_25 return v0 :cond_26 if-ne p4, v1, :cond_49 if-eq p5, p0, :cond_2f if-eq p5, v1, :cond_2f if-eq p5, p1, :cond_2f return v0 :cond_2f if-ne p6, p0, :cond_36 if-lt p7, v1, :cond_35 if-le p7, v3, :cond_47 :cond_35 return v0 :cond_36 if-eq p6, v1, :cond_42 if-ne p6, p1, :cond_3b goto :goto_42 :cond_3b if-ne p6, v2, :cond_41 if-eq p7, p0, :cond_47 if-eq p7, v1, :cond_47 :cond_41 return v0 :cond_42 :goto_42 if-lt p7, p0, :cond_49 if-le p7, v3, :cond_47 goto :goto_49 :cond_47 const/4 p0, 0x1 return p0 :cond_49 :goto_49 return v0 .end method .method static checkTime(CCCCCC)Z .registers 10 const/16 v0, 0x39 const/4 v1, 0x0 const/16 v2, 0x30 if-ne p0, v2, :cond_c if-lt p1, v2, :cond_b if-le p1, v0, :cond_20 :cond_b return v1 :cond_c const/16 v3, 0x31 if-ne p0, v3, :cond_15 if-lt p1, v2, :cond_14 if-le p1, v0, :cond_20 :cond_14 return v1 :cond_15 const/16 v3, 0x32 if-ne p0, v3, :cond_42 if-lt p1, v2, :cond_42 const/16 p0, 0x34 if-le p1, p0, :cond_20 goto :goto_42 :cond_20 const/16 p0, 0x35 const/16 p1, 0x36 if-lt p2, v2, :cond_2d if-gt p2, p0, :cond_2d if-lt p3, v2, :cond_2c if-le p3, v0, :cond_32 :cond_2c return v1 :cond_2d if-ne p2, p1, :cond_42 if-eq p3, v2, :cond_32 return v1 :cond_32 if-lt p4, v2, :cond_3b if-gt p4, p0, :cond_3b if-lt p5, v2, :cond_3a if-le p5, v0, :cond_40 :cond_3a return v1 :cond_3b if-ne p4, p1, :cond_42 if-eq p5, v2, :cond_40 return v1 :cond_40 const/4 p0, 0x1 return p0 :cond_42 :goto_42 return v1 .end method .method public static final decodeFast(Ljava/lang/String;II)[B .registers 20 move-object/from16 v0, p0 move/from16 v1, p2 const/4 v2, 0x0 if-nez v1, :cond_a .line 4724 new-array v0, v2, [B return-object v0 :cond_a add-int v3, p1, v1 const/4 v4, 0x1 sub-int/2addr v3, v4 move/from16 v5, p1 :goto_10 if-ge v5, v3, :cond_1f .line 4730 sget-object v6, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I invoke-virtual {v0, v5}, Ljava/lang/String;->charAt(I)C move-result v7 aget v6, v6, v7 if-gez v6, :cond_1f add-int/lit8 v5, v5, 0x1 goto :goto_10 :cond_1f :goto_1f if-lez v3, :cond_2e .line 4734 sget-object v6, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I invoke-virtual {v0, v3}, Ljava/lang/String;->charAt(I)C move-result v7 aget v6, v6, v7 if-gez v6, :cond_2e add-int/lit8 v3, v3, -0x1 goto :goto_1f .line 4738 :cond_2e invoke-virtual {v0, v3}, Ljava/lang/String;->charAt(I)C move-result v6 const/16 v7, 0x3d if-ne v6, v7, :cond_42 add-int/lit8 v6, v3, -0x1 invoke-virtual {v0, v6}, Ljava/lang/String;->charAt(I)C move-result v6 if-ne v6, v7, :cond_40 const/4 v6, 0x2 goto :goto_43 :cond_40 move v6, v4 goto :goto_43 :cond_42 move v6, v2 :goto_43 sub-int v7, v3, v5 add-int/2addr v7, v4 const/16 v8, 0x4c if-le v1, v8, :cond_58 .line 4740 invoke-virtual {v0, v8}, Ljava/lang/String;->charAt(I)C move-result v1 const/16 v8, 0xd if-ne v1, v8, :cond_55 div-int/lit8 v1, v7, 0x4e goto :goto_56 :cond_55 move v1, v2 :goto_56 shl-int/2addr v1, v4 goto :goto_59 :cond_58 move v1, v2 :goto_59 sub-int/2addr v7, v1 mul-int/lit8 v7, v7, 0x6 shr-int/lit8 v7, v7, 0x3 sub-int/2addr v7, v6 .line 4743 new-array v8, v7, [B .line 4747 div-int/lit8 v9, v7, 0x3 mul-int/lit8 v9, v9, 0x3 move v10, v2 move v11, v10 :goto_67 if-ge v10, v9, :cond_b6 .line 4749 sget-object v12, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I add-int/lit8 v13, v5, 0x1 invoke-virtual {v0, v5}, Ljava/lang/String;->charAt(I)C move-result v14 aget v14, v12, v14 shl-int/lit8 v14, v14, 0x12 add-int/lit8 v15, v5, 0x2 invoke-virtual {v0, v13}, Ljava/lang/String;->charAt(I)C move-result v13 aget v13, v12, v13 shl-int/lit8 v13, v13, 0xc or-int/2addr v13, v14 add-int/lit8 v14, v5, 0x3 invoke-virtual {v0, v15}, Ljava/lang/String;->charAt(I)C move-result v15 aget v15, v12, v15 shl-int/lit8 v15, v15, 0x6 or-int/2addr v13, v15 add-int/lit8 v15, v5, 0x4 .line 4750 invoke-virtual {v0, v14}, Ljava/lang/String;->charAt(I)C move-result v14 aget v12, v12, v14 or-int/2addr v12, v13 add-int/lit8 v13, v10, 0x1 shr-int/lit8 v14, v12, 0x10 int-to-byte v14, v14 .line 4753 aput-byte v14, v8, v10 add-int/lit8 v14, v10, 0x2 shr-int/lit8 v2, v12, 0x8 int-to-byte v2, v2 .line 4754 aput-byte v2, v8, v13 add-int/lit8 v10, v10, 0x3 int-to-byte v2, v12 .line 4755 aput-byte v2, v8, v14 if-lez v1, :cond_b3 add-int/lit8 v11, v11, 0x1 const/16 v2, 0x13 if-ne v11, v2, :cond_b3 add-int/lit8 v5, v5, 0x6 const/4 v11, 0x0 goto :goto_b4 :cond_b3 move v5, v15 :goto_b4 const/4 v2, 0x0 goto :goto_67 :cond_b6 if-ge v10, v7, :cond_e2 const/4 v2, 0x0 const/16 v16, 0x0 :goto_bb sub-int v1, v3, v6 if-gt v5, v1, :cond_d3 .line 4768 sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->IA:[I add-int/lit8 v9, v5, 0x1 invoke-virtual {v0, v5}, Ljava/lang/String;->charAt(I)C move-result v5 aget v1, v1, v5 mul-int/lit8 v5, v16, 0x6 rsub-int/lit8 v5, v5, 0x12 shl-int/2addr v1, v5 or-int/2addr v2, v1 add-int/lit8 v16, v16, 0x1 move v5, v9 goto :goto_bb :cond_d3 const/16 v0, 0x10 :goto_d5 if-ge v10, v7, :cond_e2 add-int/lit8 v1, v10, 0x1 shr-int v3, v2, v0 int-to-byte v3, v3 .line 4771 aput-byte v3, v8, v10 add-int/lit8 v0, v0, -0x8 move v10, v1 goto :goto_d5 :cond_e2 return-object v8 .end method .method private matchFieldHash(J)I .registers 19 move-object/from16 v0, p0 .line 2058 iget-char v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 v2, 0x1 move v3, v2 :goto_6 const/16 v4, 0x22 const/4 v7, 0x0 const/4 v8, -0x2 const/16 v9, 0x9 const/16 v10, 0xd const/16 v11, 0xa const/16 v13, 0x20 if-ne v1, v4, :cond_15 goto :goto_19 :cond_15 const/16 v4, 0x27 if-ne v1, v4, :cond_8c .line 2083 :goto_19 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v4, v3 const-wide v14, -0x340d631b7bdddcdbL # -7.302176725335867E57 :goto_21 iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-ge v4, v12, :cond_3e .line 2084 iget-object v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v12, v4}, Ljava/lang/String;->charAt(I)C move-result v12 if-ne v12, v1, :cond_33 .line 2087 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v4, v1 sub-int/2addr v4, v3 add-int/2addr v3, v4 goto :goto_3e :cond_33 int-to-long v5, v12 xor-long/2addr v5, v14 const-wide v14, 0x100000001b3L mul-long/2addr v14, v5 add-int/lit8 v4, v4, 0x1 goto :goto_21 :cond_3e :goto_3e cmp-long v1, v14, p1 if-eqz v1, :cond_47 .line 2096 iput-wide v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->fieldHash:J .line 2097 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v7 .line 2101 :cond_47 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v2 add-int/2addr v1, v3 .line 2102 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v4, :cond_52 const/16 v1, 0x1a goto :goto_58 :cond_52 iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2104 invoke-virtual {v4, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_58 const/16 v4, 0x3a if-ne v1, v4, :cond_5e add-int/2addr v3, v2 return v3 :cond_5e if-gt v1, v13, :cond_84 if-eq v1, v13, :cond_70 if-eq v1, v11, :cond_70 if-eq v1, v10, :cond_70 if-eq v1, v9, :cond_70 const/16 v4, 0xc if-eq v1, v4, :cond_70 const/16 v4, 0x8 if-ne v1, v4, :cond_84 .line 2118 :cond_70 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v4, v3, 0x1 add-int/2addr v1, v3 .line 2119 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_7c const/16 v1, 0x1a goto :goto_82 :cond_7c iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2121 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_82 move v3, v4 goto :goto_58 .line 2125 :cond_84 new-instance v1, Lcom/alibaba/fastjson/JSONException; const-string v2, "match feild error expect \':\'" invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 :cond_8c if-eq v1, v13, :cond_a4 if-eq v1, v11, :cond_a4 if-eq v1, v10, :cond_a4 if-eq v1, v9, :cond_a4 const/16 v4, 0xc if-eq v1, v4, :cond_a4 const/16 v4, 0x8 if-ne v1, v4, :cond_9d goto :goto_a4 :cond_9d const-wide/16 v1, 0x0 .line 2076 iput-wide v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->fieldHash:J .line 2077 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v7 .line 2071 :cond_a4 :goto_a4 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v4, v3, 0x1 add-int/2addr v1, v3 .line 2072 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_b0 const/16 v1, 0x1a goto :goto_b6 :cond_b0 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2074 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_b6 move v3, v4 goto/16 :goto_6 .end method .method private static readString([CI)Ljava/lang/String; .registers 18 move/from16 v0, p1 .line 825 new-array v1, v0, [C const/4 v2, 0x0 move v3, v2 move v4, v3 :goto_7 if-ge v3, v0, :cond_104 .line 828 aget-char v5, p0, v3 const/16 v6, 0x5c const/4 v7, 0x1 if-eq v5, v6, :cond_17 add-int/lit8 v6, v4, 0x1 .line 831 aput-char v5, v1, v4 move v4, v6 goto/16 :goto_101 :cond_17 add-int/lit8 v5, v3, 0x1 .line 834 aget-char v8, p0, v5 const/16 v9, 0x22 if-eq v8, v9, :cond_fb const/16 v9, 0x27 if-eq v8, v9, :cond_f6 const/16 v9, 0x46 if-eq v8, v9, :cond_ef if-eq v8, v6, :cond_ea const/16 v6, 0x62 if-eq v8, v6, :cond_e3 const/16 v6, 0x66 if-eq v8, v6, :cond_ef const/16 v6, 0x6e if-eq v8, v6, :cond_dc const/16 v6, 0x72 if-eq v8, v6, :cond_d5 const/16 v6, 0x78 const/16 v9, 0x10 if-eq v8, v6, :cond_bf const/4 v6, 0x4 const/4 v10, 0x3 const/4 v11, 0x2 packed-switch v8, :pswitch_data_10a packed-switch v8, :pswitch_data_120 .line 903 new-instance v0, Lcom/alibaba/fastjson/JSONException; const-string v1, "unclosed.str.lit" invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :pswitch_50 add-int/lit8 v3, v4, 0x1 const/16 v6, 0xb .line 871 aput-char v6, v1, v4 goto/16 :goto_ff :pswitch_58 add-int/lit8 v5, v4, 0x1 .line 896 new-instance v8, Ljava/lang/String; add-int/lit8 v12, v3, 0x2 aget-char v12, p0, v12 add-int/lit8 v13, v3, 0x3 aget-char v13, p0, v13 add-int/lit8 v14, v3, 0x4 aget-char v14, p0, v14 add-int/lit8 v3, v3, 0x5 aget-char v15, p0, v3 new-array v6, v6, [C aput-char v12, v6, v2 aput-char v13, v6, v7 aput-char v14, v6, v11 aput-char v15, v6, v10 invoke-direct {v8, v6}, Ljava/lang/String;->([C)V invoke-static {v8, v9}, Ljava/lang/Integer;->parseInt(Ljava/lang/String;I)I move-result v6 int-to-char v6, v6 aput-char v6, v1, v4 :goto_80 move v4, v5 goto/16 :goto_101 :pswitch_83 add-int/lit8 v3, v4, 0x1 const/16 v6, 0x9 .line 865 aput-char v6, v1, v4 goto/16 :goto_ff :pswitch_8b add-int/lit8 v3, v4, 0x1 const/4 v6, 0x7 .line 859 aput-char v6, v1, v4 goto/16 :goto_ff :pswitch_92 add-int/lit8 v3, v4, 0x1 const/4 v6, 0x6 .line 856 aput-char v6, v1, v4 goto/16 :goto_ff :pswitch_99 add-int/lit8 v3, v4, 0x1 const/4 v6, 0x5 .line 853 aput-char v6, v1, v4 goto :goto_ff :pswitch_9f add-int/lit8 v3, v4, 0x1 .line 850 aput-char v6, v1, v4 goto :goto_ff :pswitch_a4 add-int/lit8 v3, v4, 0x1 .line 847 aput-char v10, v1, v4 goto :goto_ff :pswitch_a9 add-int/lit8 v3, v4, 0x1 .line 844 aput-char v11, v1, v4 goto :goto_ff :pswitch_ae add-int/lit8 v3, v4, 0x1 .line 841 aput-char v7, v1, v4 goto :goto_ff :pswitch_b3 add-int/lit8 v3, v4, 0x1 .line 838 aput-char v2, v1, v4 goto :goto_ff :pswitch_b8 add-int/lit8 v3, v4, 0x1 const/16 v6, 0x2f .line 887 aput-char v6, v1, v4 goto :goto_ff :cond_bf add-int/lit8 v5, v4, 0x1 .line 893 sget-object v6, Lcom/alibaba/fastjson/parser/JSONLexer;->digits:[I add-int/lit8 v8, v3, 0x2 aget-char v8, p0, v8 aget v8, v6, v8 mul-int/2addr v8, v9 add-int/lit8 v3, v3, 0x3 aget-char v9, p0, v3 aget v6, v6, v9 add-int/2addr v8, v6 int-to-char v6, v8 aput-char v6, v1, v4 goto :goto_80 :cond_d5 add-int/lit8 v3, v4, 0x1 const/16 v6, 0xd .line 878 aput-char v6, v1, v4 goto :goto_ff :cond_dc add-int/lit8 v3, v4, 0x1 const/16 v6, 0xa .line 868 aput-char v6, v1, v4 goto :goto_ff :cond_e3 add-int/lit8 v3, v4, 0x1 const/16 v6, 0x8 .line 862 aput-char v6, v1, v4 goto :goto_ff :cond_ea add-int/lit8 v3, v4, 0x1 .line 890 aput-char v6, v1, v4 goto :goto_ff :cond_ef add-int/lit8 v3, v4, 0x1 const/16 v6, 0xc .line 875 aput-char v6, v1, v4 goto :goto_ff :cond_f6 add-int/lit8 v3, v4, 0x1 .line 884 aput-char v9, v1, v4 goto :goto_ff :cond_fb add-int/lit8 v3, v4, 0x1 .line 881 aput-char v9, v1, v4 :goto_ff move v4, v3 move v3, v5 :goto_101 add-int/2addr v3, v7 goto/16 :goto_7 .line 906 :cond_104 new-instance v0, Ljava/lang/String; invoke-direct {v0, v1, v2, v4}, Ljava/lang/String;->([CII)V return-object v0 :pswitch_data_10a .packed-switch 0x2f :pswitch_b8 :pswitch_b3 :pswitch_ae :pswitch_a9 :pswitch_a4 :pswitch_9f :pswitch_99 :pswitch_92 :pswitch_8b .end packed-switch :pswitch_data_120 .packed-switch 0x74 :pswitch_83 :pswitch_58 :pswitch_50 .end packed-switch .end method .method private scanIdent()V .registers 3 .line 1183 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, -0x1 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I const/4 v0, 0x0 .line 1184 iput-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->hasSpecial:Z .line 1187 :goto_9 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1189 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 1190 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C invoke-static {v0}, Ljava/lang/Character;->isLetterOrDigit(C)Z move-result v0 if-eqz v0, :cond_1b goto :goto_9 .line 1194 :cond_1b invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->stringVal()Ljava/lang/String; move-result-object v0 .line 1196 const-string v1, "null" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_2c const/16 v0, 0x8 .line 1197 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_7c .line 1198 :cond_2c const-string v1, "true" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_38 const/4 v0, 0x6 .line 1199 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_7c .line 1200 :cond_38 const-string v1, "false" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_44 const/4 v0, 0x7 .line 1201 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_7c .line 1202 :cond_44 const-string v1, "new" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_51 const/16 v0, 0x9 .line 1203 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_7c .line 1204 :cond_51 const-string v1, "undefined" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_5e const/16 v0, 0x17 .line 1205 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_7c .line 1206 :cond_5e const-string v1, "Set" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v1 if-eqz v1, :cond_6b const/16 v0, 0x15 .line 1207 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_7c .line 1208 :cond_6b const-string v1, "TreeSet" invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v0 if-eqz v0, :cond_78 const/16 v0, 0x16 .line 1209 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_7c :cond_78 const/16 v0, 0x12 .line 1211 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I :goto_7c return-void .end method .method private setCalendar(CCCCCCCC)V .registers 11 .line 4656 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->timeZone:Ljava/util/TimeZone; iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->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/JSONLexer;->calendar:Ljava/util/Calendar; add-int/lit8 p1, p1, -0x30 mul-int/lit16 p1, p1, 0x3e8 add-int/lit8 p2, p2, -0x30 mul-int/lit8 p2, p2, 0x64 add-int/2addr p1, p2 add-int/lit8 p3, p3, -0x30 mul-int/lit8 p3, p3, 0xa add-int/2addr p1, p3 add-int/lit8 p4, p4, -0x30 add-int/2addr p1, p4 add-int/lit8 p5, p5, -0x30 mul-int/lit8 p5, p5, 0xa add-int/lit8 p6, p6, -0x30 add-int/2addr p5, p6 const/4 p2, 0x1 sub-int/2addr p5, p2 add-int/lit8 p7, p7, -0x30 mul-int/lit8 p7, p7, 0xa add-int/lit8 p8, p8, -0x30 add-int/2addr p7, p8 .line 4660 invoke-virtual {v0, p2, p1}, Ljava/util/Calendar;->set(II)V .line 4661 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/4 p2, 0x2 invoke-virtual {p1, p2, p5}, Ljava/util/Calendar;->set(II)V .line 4662 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/4 p2, 0x5 invoke-virtual {p1, p2, p7}, Ljava/util/Calendar;->set(II)V return-void .end method .method private final subString(II)Ljava/lang/String; .registers 7 .line 1225 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C array-length v1, v0 const/4 v2, 0x0 if-ge p2, v1, :cond_15 .line 1226 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int v3, p1, p2 invoke-virtual {v1, p1, v3, v0, v2}, Ljava/lang/String;->getChars(II[CI)V .line 1227 new-instance p1, Ljava/lang/String; iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C invoke-direct {p1, v0, v2, p2}, Ljava/lang/String;->([CII)V return-object p1 .line 1229 :cond_15 new-array v0, p2, [C .line 1230 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int/2addr p2, p1 invoke-virtual {v1, p1, p2, v0, v2}, Ljava/lang/String;->getChars(II[CI)V .line 1231 new-instance p1, Ljava/lang/String; invoke-direct {p1, v0}, Ljava/lang/String;->([C)V return-object p1 .end method # virtual methods .method public bytesValue()[B .registers 4 .line 1179 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/lit8 v1, v1, 0x1 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I invoke-static {v0, v1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->decodeFast(Ljava/lang/String;II)[B move-result-object v0 return-object v0 .end method .method protected charAt(I)C .registers 3 .line 216 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_7 const/16 p1, 0x1a goto :goto_d :cond_7 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 218 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_d return p1 .end method .method public close()V .registers 4 .line 136 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C array-length v1, v0 const/16 v2, 0x2004 if-gt v1, v2, :cond_c .line 137 sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbufLocal:Ljava/lang/ThreadLocal; invoke-virtual {v1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V :cond_c const/4 v0, 0x0 .line 139 iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C return-void .end method .method public final config(Lcom/alibaba/fastjson/parser/Feature;Z)V .registers 5 if-eqz p2, :cond_a .line 151 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I iget v1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I or-int/2addr v0, v1 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I goto :goto_12 .line 153 :cond_a iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I iget v1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I not-int v1, v1 and-int/2addr v0, v1 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I .line 156 :goto_12 sget-object v0, Lcom/alibaba/fastjson/parser/Feature;->InitStringFieldAsEmpty:Lcom/alibaba/fastjson/parser/Feature; if-ne p1, v0, :cond_1e if-eqz p2, :cond_1b .line 157 const-string p1, "" goto :goto_1c :cond_1b const/4 p1, 0x0 :goto_1c iput-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String; .line 161 :cond_1e iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object p2, Lcom/alibaba/fastjson/parser/Feature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/parser/Feature; iget p2, p2, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr p1, p2 if-eqz p1, :cond_29 const/4 p1, 0x1 goto :goto_2a :cond_29 const/4 p1, 0x0 :goto_2a iput-boolean p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->disableCircularReferenceDetect:Z return-void .end method .method public final decimalValue(Z)Ljava/lang/Number; .registers 10 .line 1825 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v1 const/4 v1, 0x1 sub-int/2addr v0, v1 .line 1826 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v2, :cond_e const/16 v0, 0x1a goto :goto_14 :cond_e iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1828 invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_14 const/16 v2, 0x46 if-ne v0, v2, :cond_28 .line 1831 :try_start_18 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F move-result p1 invoke-static {p1}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object p1 return-object p1 :catch_25 move-exception p1 goto/16 :goto_c9 :cond_28 const/16 v3, 0x44 if-ne v0, v3, :cond_39 .line 1835 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v0 invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object p1 return-object p1 :cond_39 if-eqz p1, :cond_40 .line 1839 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->decimalValue()Ljava/math/BigDecimal; move-result-object p1 return-object p1 .line 1841 :cond_40 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr p1, v0 sub-int/2addr p1, v1 .line 1842 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result p1 .line 1844 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I const/16 v4, 0x4c if-eq p1, v4, :cond_5e const/16 v4, 0x53 if-eq p1, v4, :cond_5e const/16 v4, 0x42 if-eq p1, v4, :cond_5e if-eq p1, v2, :cond_5e if-ne p1, v3, :cond_60 :cond_5e add-int/lit8 v0, v0, -0x1 .line 1856 :cond_60 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1858 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C array-length v3, v2 const/4 v4, 0x0 if-ge v0, v3, :cond_72 .line 1859 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int v5, p1, v0 invoke-virtual {v3, p1, v5, v2, v4}, Ljava/lang/String;->getChars(II[CI)V .line 1860 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C goto :goto_7c .line 1862 :cond_72 new-array v2, v0, [C .line 1863 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int v5, p1, v0 invoke-virtual {v3, p1, v5, v2, v4}, Ljava/lang/String;->getChars(II[CI)V move-object p1, v2 :goto_7c const/16 v2, 0x9 if-gt v0, v2, :cond_bb .line 1866 iget-boolean v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->exp:Z if-nez v2, :cond_bb .line 1870 aget-char v2, p1, v4 const/16 v3, 0x2d const/4 v5, 0x2 if-ne v2, v3, :cond_8f .line 1874 aget-char v2, p1, v1 move v3, v1 goto :goto_98 :cond_8f const/16 v3, 0x2b if-ne v2, v3, :cond_96 .line 1877 aget-char v2, p1, v1 goto :goto_97 :cond_96 move v5, v1 :goto_97 move v3, v4 :goto_98 add-int/lit8 v2, v2, -0x30 :goto_9a if-ge v5, v0, :cond_b0 .line 1886 aget-char v6, p1, v5 const/16 v7, 0x2e if-ne v6, v7, :cond_a4 move v4, v1 goto :goto_ad :cond_a4 add-int/lit8 v6, v6, -0x30 mul-int/lit8 v2, v2, 0xa add-int/2addr v2, v6 if-eqz v4, :cond_ad mul-int/lit8 v4, v4, 0xa :cond_ad :goto_ad add-int/lit8 v5, v5, 0x1 goto :goto_9a :cond_b0 int-to-double v0, v2 int-to-double v4, v4 div-double/2addr v0, v4 if-eqz v3, :cond_b6 neg-double v0, v0 .line 1905 :cond_b6 invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object p1 return-object p1 .line 1907 :cond_bb new-instance v1, Ljava/lang/String; invoke-direct {v1, p1, v4, v0}, Ljava/lang/String;->([CII)V .line 1909 invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v0 invoke-static {v0, v1}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object p1 :try_end_c8 .catch Ljava/lang/NumberFormatException; {:try_start_18 .. :try_end_c8} :catch_25 return-object p1 .line 1912 :goto_c9 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1}, Ljava/lang/StringBuilder;->()V invoke-virtual {p1}, Ljava/lang/NumberFormatException;->getMessage()Ljava/lang/String; move-result-object p1 invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 const-string v1, ", " invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .end method .method public final decimalValue()Ljava/math/BigDecimal; .registers 7 .line 1917 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v1 add-int/lit8 v0, v0, -0x1 .line 1918 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v0 .line 1920 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I const/16 v2, 0x4c if-eq v0, v2, :cond_23 const/16 v2, 0x53 if-eq v0, v2, :cond_23 const/16 v2, 0x42 if-eq v0, v2, :cond_23 const/16 v2, 0x46 if-eq v0, v2, :cond_23 const/16 v2, 0x44 if-ne v0, v2, :cond_25 :cond_23 add-int/lit8 v1, v1, -0x1 .line 1931 :cond_25 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1932 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C array-length v3, v2 const/4 v4, 0x0 if-ge v1, v3, :cond_3c .line 1933 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int v5, v0, v1 invoke-virtual {v3, v0, v5, v2, v4}, Ljava/lang/String;->getChars(II[CI)V .line 1934 new-instance v0, Ljava/math/BigDecimal; iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C invoke-direct {v0, v2, v4, v1}, Ljava/math/BigDecimal;->([CII)V return-object v0 .line 1936 :cond_3c new-array v2, v1, [C .line 1937 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int/2addr v1, v0 invoke-virtual {v3, v0, v1, v2, v4}, Ljava/lang/String;->getChars(II[CI)V .line 1938 new-instance v0, Ljava/math/BigDecimal; invoke-direct {v0, v2}, Ljava/math/BigDecimal;->([C)V return-object v0 .end method .method public info()Ljava/lang/String; .registers 5 .line 910 new-instance v0, Ljava/lang/StringBuilder; const-string v1, "pos " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", json : " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const/high16 v2, 0x10000 if-ge v1, v2, :cond_1c iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; goto :goto_23 :cond_1c iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const/4 v3, 0x0 .line 914 invoke-virtual {v1, v3, v2}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v1 :goto_23 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public final intValue()I .registers 11 .line 1119 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v1, v0 .line 1123 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const/16 v3, 0x1a if-lt v0, v2, :cond_d move v2, v3 goto :goto_13 :cond_d iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1125 invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_13 const/16 v4, 0x2d const/4 v5, 0x1 const/4 v6, 0x0 if-ne v2, v4, :cond_1f add-int/lit8 v0, v0, 0x1 const/high16 v2, -0x80000000 move v4, v5 goto :goto_23 :cond_1f const v2, -0x7fffffff move v4, v6 :goto_23 if-ge v0, v1, :cond_39 add-int/lit8 v6, v0, 0x1 .line 1136 iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v7, :cond_2d move v0, v3 goto :goto_33 :cond_2d iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1138 invoke-virtual {v7, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_33 add-int/lit8 v0, v0, -0x30 neg-int v0, v0 move v9, v6 move v6, v0 move v0, v9 :cond_39 :goto_39 if-ge v0, v1, :cond_7b add-int/lit8 v7, v0, 0x1 .line 1147 iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v8, :cond_43 move v0, v3 goto :goto_49 :cond_43 iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1149 invoke-virtual {v8, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_49 const/16 v8, 0x4c if-eq v0, v8, :cond_7a const/16 v8, 0x53 if-eq v0, v8, :cond_7a const/16 v8, 0x42 if-ne v0, v8, :cond_56 goto :goto_7a :cond_56 add-int/lit8 v0, v0, -0x30 const v8, -0xccccccc if-lt v6, v8, :cond_70 mul-int/lit8 v6, v6, 0xa add-int v8, v2, v0 if-lt v6, v8, :cond_66 sub-int/2addr v6, v0 move v0, v7 goto :goto_39 .line 1162 :cond_66 new-instance v0, Ljava/lang/NumberFormatException; invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V throw v0 .line 1158 :cond_70 new-instance v0, Ljava/lang/NumberFormatException; invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V throw v0 :cond_7a :goto_7a move v0, v7 :cond_7b if-eqz v4, :cond_8d .line 1168 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v1, v5 if-le v0, v1, :cond_83 return v6 .line 1171 :cond_83 new-instance v0, Ljava/lang/NumberFormatException; invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V throw v0 :cond_8d neg-int v0, v6 return v0 .end method .method public final integerValue()Ljava/lang/Number; .registers 20 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/NumberFormatException; } .end annotation move-object/from16 v0, p0 .line 606 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v2, v1 add-int/lit8 v3, v2, -0x1 .line 613 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v4, :cond_10 const/16 v3, 0x1a goto :goto_16 :cond_10 iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 615 invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_16 const/16 v4, 0x53 const/16 v6, 0x4c const/16 v7, 0x42 if-eq v3, v7, :cond_2d if-eq v3, v6, :cond_29 if-eq v3, v4, :cond_25 const/16 v3, 0x20 goto :goto_30 :cond_25 add-int/lit8 v2, v2, -0x1 move v3, v4 goto :goto_30 :cond_29 add-int/lit8 v2, v2, -0x1 move v3, v6 goto :goto_30 :cond_2d add-int/lit8 v2, v2, -0x1 move v3, v7 .line 634 :goto_30 iget v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v8, v9, :cond_39 const/16 v8, 0x1a goto :goto_3f :cond_39 iget-object v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 636 invoke-virtual {v9, v8}, Ljava/lang/String;->charAt(I)C move-result v8 :goto_3f const/16 v9, 0x2d const/4 v10, 0x1 if-ne v8, v9, :cond_4b add-int/lit8 v1, v1, 0x1 const-wide/high16 v8, -0x8000000000000000L move-wide v11, v8 move v8, v10 goto :goto_51 :cond_4b const/4 v8, 0x0 const-wide v11, -0x7fffffffffffffffL # -4.9E-324 :goto_51 if-ge v1, v2, :cond_68 add-int/lit8 v9, v1, 0x1 .line 646 iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v13, :cond_5c const/16 v1, 0x1a goto :goto_62 :cond_5c iget-object v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 648 invoke-virtual {v13, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_62 add-int/lit8 v1, v1, -0x30 neg-int v1, v1 int-to-long v13, v1 move v1, v9 goto :goto_6a :cond_68 const-wide/16 v13, 0x0 :goto_6a if-ge v1, v2, :cond_a9 add-int/lit8 v9, v1, 0x1 .line 655 iget v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v15, :cond_75 const/16 v1, 0x1a goto :goto_7b :cond_75 iget-object v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 657 invoke-virtual {v15, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_7b add-int/lit8 v1, v1, -0x30 const-wide v15, -0xcccccccccccccccL cmp-long v15, v13, v15 if-gez v15, :cond_90 .line 660 new-instance v1, Ljava/math/BigInteger; invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Ljava/math/BigInteger;->(Ljava/lang/String;)V return-object v1 :cond_90 const-wide/16 v15, 0xa mul-long/2addr v13, v15 int-to-long v4, v1 add-long v17, v11, v4 cmp-long v1, v13, v17 if-gez v1, :cond_a4 .line 664 new-instance v1, Ljava/math/BigInteger; invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Ljava/math/BigInteger;->(Ljava/lang/String;)V return-object v1 :cond_a4 sub-long/2addr v13, v4 move v1, v9 const/16 v4, 0x53 goto :goto_6a :cond_a9 if-eqz v8, :cond_e2 .line 670 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v2, v10 if-le v1, v2, :cond_d8 const-wide/32 v1, -0x80000000 cmp-long v1, v13, v1 if-ltz v1, :cond_d3 if-eq v3, v6, :cond_d3 const/16 v1, 0x53 if-ne v3, v1, :cond_c4 long-to-int v1, v13 int-to-short v1, v1 .line 673 invoke-static {v1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short; move-result-object v1 return-object v1 :cond_c4 if-ne v3, v7, :cond_cd long-to-int v1, v13 int-to-byte v1, v1 .line 677 invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; move-result-object v1 return-object v1 :cond_cd long-to-int v1, v13 .line 680 invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 return-object v1 .line 682 :cond_d3 invoke-static {v13, v14}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v1 return-object v1 .line 684 :cond_d8 new-instance v1, Ljava/lang/NumberFormatException; invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V throw v1 :cond_e2 neg-long v1, v13 const-wide/32 v4, 0x7fffffff cmp-long v4, v1, v4 if-gtz v4, :cond_106 if-eq v3, v6, :cond_106 const/16 v4, 0x53 if-ne v3, v4, :cond_f7 long-to-int v1, v1 int-to-short v1, v1 .line 690 invoke-static {v1}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short; move-result-object v1 return-object v1 :cond_f7 if-ne v3, v7, :cond_100 long-to-int v1, v1 int-to-byte v1, v1 .line 692 invoke-static {v1}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; move-result-object v1 return-object v1 :cond_100 long-to-int v1, v1 .line 694 invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v1 return-object v1 .line 697 :cond_106 invoke-static {v1, v2}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v1 return-object v1 .end method .method public final isBlankInput()Z .registers 5 const/4 v0, 0x0 move v1, v0 .line 1248 :goto_2 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 const/16 v3, 0x1a if-ne v2, v3, :cond_c const/4 v0, 0x1 return v0 :cond_c const/16 v3, 0x20 if-gt v2, v3, :cond_29 if-eq v2, v3, :cond_26 const/16 v3, 0xa if-eq v2, v3, :cond_26 const/16 v3, 0xd if-eq v2, v3, :cond_26 const/16 v3, 0x9 if-eq v2, v3, :cond_26 const/16 v3, 0xc if-eq v2, v3, :cond_26 const/16 v3, 0x8 if-ne v2, v3, :cond_29 :cond_26 add-int/lit8 v1, v1, 0x1 goto :goto_2 :cond_29 return v0 .end method .method public final isEnabled(Lcom/alibaba/fastjson/parser/Feature;)Z .registers 3 .line 165 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I iget p1, p1, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr p1, v0 if-eqz p1, :cond_9 const/4 p1, 0x1 goto :goto_a :cond_9 const/4 p1, 0x0 :goto_a return p1 .end method .method public final longValue()J .registers 14 .annotation system Ldalvik/annotation/Throws; value = { Ljava/lang/NumberFormatException; } .end annotation .line 1768 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v1, v0 .line 1773 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 const/16 v3, 0x2d const/4 v4, 0x1 if-ne v2, v3, :cond_15 add-int/lit8 v0, v0, 0x1 const-wide/high16 v2, -0x8000000000000000L move-wide v5, v2 move v2, v4 goto :goto_1b :cond_15 const/4 v2, 0x0 const-wide v5, -0x7fffffffffffffffL # -4.9E-324 :goto_1b if-ge v0, v1, :cond_29 add-int/lit8 v3, v0, 0x1 .line 1781 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 add-int/lit8 v0, v0, -0x30 neg-int v0, v0 int-to-long v7, v0 :goto_27 move v0, v3 goto :goto_2b :cond_29 const-wide/16 v7, 0x0 :goto_2b if-ge v0, v1, :cond_75 add-int/lit8 v3, v0, 0x1 .line 1790 iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v9, :cond_36 const/16 v0, 0x1a goto :goto_3c :cond_36 iget-object v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1792 invoke-virtual {v9, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_3c const/16 v9, 0x4c if-eq v0, v9, :cond_74 const/16 v9, 0x53 if-eq v0, v9, :cond_74 const/16 v9, 0x42 if-ne v0, v9, :cond_49 goto :goto_74 :cond_49 add-int/lit8 v0, v0, -0x30 const-wide v9, -0xcccccccccccccccL cmp-long v9, v7, v9 if-ltz v9, :cond_6a const-wide/16 v9, 0xa mul-long/2addr v7, v9 int-to-long v9, v0 add-long v11, v5, v9 cmp-long v0, v7, v11 if-ltz v0, :cond_60 sub-long/2addr v7, v9 goto :goto_27 .line 1807 :cond_60 new-instance v0, Ljava/lang/NumberFormatException; invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V throw v0 .line 1803 :cond_6a new-instance v0, Ljava/lang/NumberFormatException; invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V throw v0 :cond_74 :goto_74 move v0, v3 :cond_75 if-eqz v2, :cond_87 .line 1813 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v1, v4 if-le v0, v1, :cond_7d return-wide v7 .line 1816 :cond_7d new-instance v0, Ljava/lang/NumberFormatException; invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->numberString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;->(Ljava/lang/String;)V throw v0 :cond_87 neg-long v0, v7 return-wide v0 .end method .method public matchField(J)Z .registers 20 move-object/from16 v0, p0 .line 1959 iget-char v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1960 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v3, 0x1 add-int/2addr v2, v3 move v4, v3 :goto_9 const/16 v5, 0x22 const/16 v9, 0xa const/4 v10, 0x0 const/4 v11, -0x2 const/16 v12, 0xc const/16 v13, 0x20 if-ne v1, v5, :cond_16 goto :goto_1a :cond_16 const/16 v5, 0x27 if-ne v1, v5, :cond_e6 :goto_1a const-wide v15, -0x340d631b7bdddcdbL # -7.302176725335867E57 move v5, v2 move-wide v14, v15 .line 1985 :goto_21 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-ge v5, v6, :cond_3d .line 1986 iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C move-result v6 if-ne v6, v1, :cond_31 sub-int/2addr v5, v2 add-int/2addr v5, v3 add-int/2addr v4, v5 goto :goto_3d :cond_31 int-to-long v7, v6 xor-long v6, v14, v7 const-wide v14, 0x100000001b3L mul-long/2addr v14, v6 add-int/lit8 v5, v5, 0x1 goto :goto_21 :cond_3d :goto_3d cmp-long v1, v14, p1 if-eqz v1, :cond_46 .line 1998 iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 1999 iput-wide v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->fieldHash:J return v10 .line 2003 :cond_46 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v4, 0x1 add-int/2addr v1, v4 .line 2004 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v4, :cond_52 const/16 v1, 0x1a goto :goto_58 :cond_52 iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2006 invoke-virtual {v4, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_58 const/16 v4, 0x3a if-ne v1, v4, :cond_b5 .line 2009 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v2 .line 2010 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v2, :cond_66 const/16 v2, 0x1a goto :goto_6c :cond_66 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2012 invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_6c const/16 v4, 0x7b if-ne v2, v4, :cond_85 add-int/2addr v1, v3 .line 2034 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2035 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v2, :cond_7a const/16 v14, 0x1a goto :goto_80 :cond_7a iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2037 invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C move-result v14 :goto_80 iput-char v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 2038 iput v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_b4 :cond_85 const/16 v4, 0x5b if-ne v2, v4, :cond_a0 add-int/2addr v1, v3 .line 2040 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2041 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v2, :cond_93 const/16 v14, 0x1a goto :goto_99 :cond_93 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2043 invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C move-result v14 :goto_99 iput-char v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0xe .line 2044 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_b4 .line 2046 :cond_a0 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2047 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v2, :cond_a9 const/16 v14, 0x1a goto :goto_af :cond_a9 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2049 invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C move-result v14 :goto_af iput-char v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 2050 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V :goto_b4 return v3 :cond_b5 if-gt v1, v13, :cond_de if-eq v1, v13, :cond_c9 if-eq v1, v9, :cond_c9 const/16 v4, 0xd if-eq v1, v4, :cond_c9 const/16 v4, 0x9 if-eq v1, v4, :cond_c9 if-eq v1, v12, :cond_c9 const/16 v4, 0x8 if-ne v1, v4, :cond_de .line 2023 :cond_c9 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v4, v2, 0x1 add-int/2addr v1, v2 .line 2024 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v2, :cond_d5 const/16 v1, 0x1a goto :goto_db :cond_d5 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2026 invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_db move v2, v4 goto/16 :goto_58 .line 2030 :cond_de new-instance v1, Lcom/alibaba/fastjson/JSONException; const-string v2, "match feild error expect \':\'" invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 :cond_e6 if-gt v1, v13, :cond_10f if-eq v1, v13, :cond_fa if-eq v1, v9, :cond_fa const/16 v5, 0xd if-eq v1, v5, :cond_fa const/16 v5, 0x9 if-eq v1, v5, :cond_fa if-eq v1, v12, :cond_fa const/16 v5, 0x8 if-ne v1, v5, :cond_10f .line 1973 :cond_fa iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v4, 0x1 add-int/2addr v1, v4 .line 1974 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v4, :cond_106 const/16 v1, 0x1a goto :goto_10c :cond_106 iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1976 invoke-virtual {v4, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_10c move v4, v5 goto/16 :goto_9 :cond_10f const-wide/16 v1, 0x0 .line 1978 iput-wide v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->fieldHash:J .line 1979 iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v10 .end method .method public next()C .registers 3 .line 143 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 144 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v1, :cond_d const/16 v0, 0x1a goto :goto_13 :cond_d iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 146 invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_13 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return v0 .end method .method public final nextIdent()V .registers 3 .line 582 :goto_0 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0x20 if-gt v0, v1, :cond_20 if-eq v0, v1, :cond_1c const/16 v1, 0xa if-eq v0, v1, :cond_1c const/16 v1, 0xd if-eq v0, v1, :cond_1c const/16 v1, 0x9 if-eq v0, v1, :cond_1c const/16 v1, 0xc if-eq v0, v1, :cond_1c const/16 v1, 0x8 if-ne v0, v1, :cond_20 .line 592 :cond_1c invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_0 :cond_20 const/16 v1, 0x5f if-eq v0, v1, :cond_2f .line 596 invoke-static {v0}, Ljava/lang/Character;->isLetter(C)Z move-result v0 if-eqz v0, :cond_2b goto :goto_2f .line 599 :cond_2b invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V goto :goto_32 .line 597 :cond_2f :goto_2f invoke-direct {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanIdent()V :goto_32 return-void .end method .method public final nextToken()V .registers 17 move-object/from16 v0, p0 const/4 v1, 0x0 .line 222 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 225 :goto_5 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I .line 227 iget-char v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v4, 0x2f if-ne v3, v4, :cond_13 .line 228 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipComment()V goto :goto_5 :cond_13 const/16 v4, 0x22 if-ne v3, v4, :cond_1b .line 233 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V return-void :cond_1b const/16 v4, 0x30 if-lt v3, v4, :cond_23 const/16 v4, 0x39 if-le v3, v4, :cond_27 :cond_23 const/16 v4, 0x2d if-ne v3, v4, :cond_2b .line 238 :cond_27 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V return-void :cond_2b const/16 v4, 0x2c if-ne v3, v4, :cond_37 .line 243 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C const/16 v1, 0x10 .line 244 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void :cond_37 const/16 v5, 0xc if-eq v3, v5, :cond_1d5 const/16 v6, 0xd if-eq v3, v6, :cond_1d5 const/16 v7, 0x20 if-eq v3, v7, :cond_1d5 const/16 v8, 0x3a if-eq v3, v8, :cond_1cd const/16 v9, 0x5b const/4 v10, 0x1 const/16 v11, 0x1a if-eq v3, v9, :cond_1b8 const/16 v9, 0x5d if-eq v3, v9, :cond_1b0 const/16 v12, 0x66 const/16 v13, 0x9 const/16 v14, 0x8 const/16 v15, 0xa const/16 v1, 0x7d if-eq v3, v12, :cond_178 const/16 v12, 0x6e if-eq v3, v12, :cond_128 const/16 v12, 0x7b if-eq v3, v12, :cond_115 if-eq v3, v1, :cond_102 const/16 v12, 0x53 if-eq v3, v12, :cond_fe const/16 v12, 0x54 if-eq v3, v12, :cond_fe const/16 v12, 0x74 if-eq v3, v12, :cond_c6 const/16 v1, 0x75 if-eq v3, v1, :cond_fe packed-switch v3, :pswitch_data_1dc packed-switch v3, :pswitch_data_1e6 .line 388 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-eq v2, v1, :cond_9d if-ne v3, v11, :cond_89 add-int/lit8 v2, v2, 0x1 if-ne v2, v1, :cond_89 goto :goto_9d :cond_89 const/16 v1, 0x1f if-le v3, v1, :cond_98 const/16 v1, 0x7f if-ne v3, v1, :cond_92 goto :goto_98 .line 401 :cond_92 iput v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 402 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_ab .line 398 :cond_98 :goto_98 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto/16 :goto_1d8 .line 390 :cond_9d :goto_9d iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v2, 0x14 if-eq v1, v2, :cond_ac .line 394 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 395 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->eofPos:I iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I :goto_ab return-void .line 391 :cond_ac new-instance v1, Lcom/alibaba/fastjson/JSONException; const-string v2, "EOF error" invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 346 :pswitch_b4 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C const/16 v1, 0xb .line 347 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 342 :pswitch_bc invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 343 iput v15, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 250 :pswitch_c2 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V return-void .line 262 :cond_c6 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v10, "true" invoke-virtual {v3, v10, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v2 if-eqz v2, :cond_f6 .line 263 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x4 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 264 invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 iput-char v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-eq v2, v7, :cond_f2 if-eq v2, v4, :cond_f2 if-eq v2, v1, :cond_f2 if-eq v2, v9, :cond_f2 if-eq v2, v15, :cond_f2 if-eq v2, v6, :cond_f2 if-eq v2, v13, :cond_f2 if-eq v2, v11, :cond_f2 if-eq v2, v5, :cond_f2 if-eq v2, v14, :cond_f2 if-ne v2, v8, :cond_f6 :cond_f2 const/4 v1, 0x6 .line 277 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 281 :cond_f6 new-instance v1, Lcom/alibaba/fastjson/JSONException; const-string v2, "scan true error" invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 286 :cond_fe invoke-direct/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanIdent()V return-void :cond_102 add-int/2addr v2, v10 .line 376 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 377 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v1, :cond_10a goto :goto_110 :cond_10a iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 379 invoke-virtual {v1, v2}, Ljava/lang/String;->charAt(I)C move-result v11 :goto_110 iput-char v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 381 iput v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void :cond_115 add-int/2addr v2, v10 .line 366 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 367 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v1, :cond_11d goto :goto_123 :cond_11d iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 369 invoke-virtual {v1, v2}, Ljava/lang/String;->charAt(I)C move-result v11 :goto_123 iput-char v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 371 iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 314 :cond_128 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v8, "null" invoke-virtual {v3, v8, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v2 if-eqz v2, :cond_13a .line 315 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x4 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I move v2, v14 goto :goto_14f .line 317 :cond_13a iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v3, "new" iget v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v2, v3, v8}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v2 if-eqz v2, :cond_14e .line 318 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x3 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I move v2, v13 goto :goto_14f :cond_14e const/4 v2, 0x0 :goto_14f if-eqz v2, :cond_170 .line 323 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 iput-char v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-eq v3, v7, :cond_16d if-eq v3, v4, :cond_16d if-eq v3, v1, :cond_16d if-eq v3, v9, :cond_16d if-eq v3, v15, :cond_16d if-eq v3, v6, :cond_16d if-eq v3, v13, :cond_16d if-eq v3, v11, :cond_16d if-eq v3, v5, :cond_16d if-ne v3, v14, :cond_170 .line 334 :cond_16d iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 339 :cond_170 new-instance v1, Lcom/alibaba/fastjson/JSONException; const-string v2, "scan null/new error" invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 290 :cond_178 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v10, "false" invoke-virtual {v3, v10, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v2 if-eqz v2, :cond_1a8 .line 291 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x5 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 292 invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 iput-char v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-eq v2, v7, :cond_1a4 if-eq v2, v4, :cond_1a4 if-eq v2, v1, :cond_1a4 if-eq v2, v9, :cond_1a4 if-eq v2, v15, :cond_1a4 if-eq v2, v6, :cond_1a4 if-eq v2, v13, :cond_1a4 if-eq v2, v11, :cond_1a4 if-eq v2, v5, :cond_1a4 if-eq v2, v14, :cond_1a4 if-ne v2, v8, :cond_1a8 :cond_1a4 const/4 v1, 0x7 .line 305 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 309 :cond_1a8 new-instance v1, Lcom/alibaba/fastjson/JSONException; const-string v2, "scan false error" invoke-direct {v1, v2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v1 .line 360 :cond_1b0 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C const/16 v1, 0xf .line 361 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void :cond_1b8 add-int/2addr v2, v10 .line 352 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 353 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v1, :cond_1c0 goto :goto_1c6 :cond_1c0 iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 355 invoke-virtual {v1, v2}, Ljava/lang/String;->charAt(I)C move-result v11 :goto_1c6 iput-char v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0xe .line 357 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 384 :cond_1cd invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C const/16 v1, 0x11 .line 385 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 258 :cond_1d5 :pswitch_1d5 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C :goto_1d8 const/4 v1, 0x0 goto/16 :goto_5 nop :pswitch_data_1dc .packed-switch 0x8 :pswitch_1d5 :pswitch_1d5 :pswitch_1d5 .end packed-switch :pswitch_data_1e6 .packed-switch 0x27 :pswitch_c2 :pswitch_bc :pswitch_b4 .end packed-switch .end method .method public final nextToken(I)V .registers 12 const/4 v0, 0x0 .line 412 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I :goto_3 const/4 v0, 0x2 const/16 v1, 0xd const/16 v2, 0x39 const/16 v3, 0x22 const/16 v4, 0x30 const/16 v5, 0xe const/16 v6, 0x5b const/16 v7, 0x7b const/16 v8, 0xc if-eq p1, v0, :cond_10c const/4 v0, 0x4 const/16 v9, 0x1a if-eq p1, v0, :cond_dc if-eq p1, v8, :cond_aa const/16 v0, 0x12 if-eq p1, v0, :cond_a6 const/16 v0, 0x14 if-eq p1, v0, :cond_9f const/16 v2, 0xf const/16 v3, 0x5d packed-switch p1, :pswitch_data_154 goto/16 :goto_134 .line 441 :pswitch_2e iget-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v5, 0x2c if-ne v4, v5, :cond_4c const/16 p1, 0x10 .line 442 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 445 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 446 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_43 goto :goto_49 :cond_43 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 448 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v9 :goto_49 iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return-void :cond_4c const/16 v5, 0x7d if-ne v4, v5, :cond_66 .line 454 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 457 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 458 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_5d goto :goto_63 :cond_5d iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 460 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v9 :goto_63 iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return-void :cond_66 if-ne v4, v3, :cond_7e .line 466 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 469 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 470 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_75 goto :goto_7b :cond_75 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 472 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v9 :goto_7b iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return-void :cond_7e if-ne v4, v9, :cond_134 .line 478 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 547 :pswitch_83 iget-char v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v4, v3, :cond_9f .line 548 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 549 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C return-void .line 534 :pswitch_8d iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v0, v6, :cond_97 .line 535 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 536 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C return-void :cond_97 if-ne v0, v7, :cond_134 .line 541 iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 542 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C return-void .line 553 :cond_9f iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v2, v9, :cond_134 .line 554 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 559 :cond_a6 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextIdent()V return-void .line 417 :cond_aa iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v0, v7, :cond_c4 .line 418 iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 421 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 422 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_bb goto :goto_c1 :cond_bb iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 424 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v9 :goto_c1 iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return-void :cond_c4 if-ne v0, v6, :cond_134 .line 429 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 432 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 433 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_d3 goto :goto_d9 :cond_d3 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 435 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v9 :goto_d9 iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return-void .line 509 :cond_dc iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v0, v3, :cond_e8 .line 510 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I .line 511 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V return-void :cond_e8 if-lt v0, v4, :cond_f4 if-gt v0, v2, :cond_f4 .line 516 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I .line 517 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V return-void :cond_f4 if-ne v0, v7, :cond_134 .line 522 iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 525 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 526 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_103 goto :goto_109 :cond_103 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 528 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v9 :goto_109 iput-char v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return-void .line 483 :cond_10c iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-lt v0, v4, :cond_11a if-gt v0, v2, :cond_11a .line 484 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I .line 485 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanNumber()V return-void :cond_11a if-ne v0, v3, :cond_124 .line 490 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->pos:I .line 491 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanString()V return-void :cond_124 if-ne v0, v6, :cond_12c .line 496 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 497 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C return-void :cond_12c if-ne v0, v7, :cond_134 .line 502 iput v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 503 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C return-void .line 565 :cond_134 :goto_134 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v2, 0x20 if-eq v0, v2, :cond_14f const/16 v2, 0xa if-eq v0, v2, :cond_14f if-eq v0, v1, :cond_14f const/16 v1, 0x9 if-eq v0, v1, :cond_14f if-eq v0, v8, :cond_14f const/16 v1, 0x8 if-ne v0, v1, :cond_14b goto :goto_14f .line 575 :cond_14b invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-void .line 571 :cond_14f :goto_14f invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto/16 :goto_3 :pswitch_data_154 .packed-switch 0xe :pswitch_8d :pswitch_83 :pswitch_2e .end packed-switch .end method .method public final nextTokenWithChar(C)V .registers 5 const/4 v0, 0x0 .line 169 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 172 :goto_3 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v0, p1, :cond_20 .line 175 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p1, p1, 0x1 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 176 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_14 const/16 p1, 0x1a goto :goto_1a :cond_14 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 178 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_1a iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 180 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->nextToken()V return-void :cond_20 const/16 v1, 0x20 if-eq v0, v1, :cond_5a const/16 v1, 0xa if-eq v0, v1, :cond_5a const/16 v1, 0xd if-eq v0, v1, :cond_5a const/16 v1, 0x9 if-eq v0, v1, :cond_5a const/16 v1, 0xc if-eq v0, v1, :cond_5a const/16 v1, 0x8 if-ne v0, v1, :cond_39 goto :goto_5a .line 194 :cond_39 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "not match " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object p1 const-string v1, " - " invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C invoke-virtual {p1, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 190 :cond_5a :goto_5a invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_3 .end method .method public final numberString()Ljava/lang/String; .registers 4 .line 199 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v1 add-int/lit8 v0, v0, -0x1 .line 200 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v0 .line 202 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I const/16 v2, 0x4c if-eq v0, v2, :cond_23 const/16 v2, 0x53 if-eq v0, v2, :cond_23 const/16 v2, 0x42 if-eq v0, v2, :cond_23 const/16 v2, 0x46 if-eq v0, v2, :cond_23 const/16 v2, 0x44 if-ne v0, v2, :cond_25 :cond_23 add-int/lit8 v1, v1, -0x1 .line 212 :cond_25 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I invoke-direct {p0, v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v0 return-object v0 .end method .method public scanBoolean()Z .registers 5 .line 1428 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v1, "false" iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v0, v1, v2}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v0 const/4 v1, 0x0 if-eqz v0, :cond_f const/4 v0, 0x5 goto :goto_2d .line 1431 :cond_f iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v2, "true" iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v0, v2, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v0 const/4 v2, 0x1 if-eqz v0, :cond_1f const/4 v0, 0x4 move v1, v2 goto :goto_2d .line 1434 :cond_1f iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v3, 0x31 if-ne v0, v3, :cond_28 move v0, v2 move v1, v0 goto :goto_2d :cond_28 const/16 v3, 0x30 if-ne v0, v3, :cond_39 move v0, v2 .line 1445 :goto_2d iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v0 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1446 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return v1 :cond_39 const/4 v0, -0x1 .line 1441 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v1 .end method .method public scanFieldBoolean(J)Z .registers 15 const/4 v0, 0x0 .line 2830 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2832 invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result p1 if-nez p1, :cond_a return v0 .line 2838 :cond_a iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, p1 const-string v2, "false" invoke-virtual {p2, v2, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result p2 const/4 v1, 0x4 const/4 v2, -0x1 const/4 v3, 0x3 const/4 v4, 0x1 if-eqz p2, :cond_20 add-int/lit8 p1, p1, 0x5 :goto_1d move p2, v0 goto/16 :goto_8c .line 2841 :cond_20 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, p1 const-string v6, "true" invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result p2 if-eqz p2, :cond_30 add-int/2addr p1, v1 :goto_2e move p2, v4 goto :goto_8c .line 2844 :cond_30 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, p1 const-string v6, "\"false\"" invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result p2 if-eqz p2, :cond_40 add-int/lit8 p1, p1, 0x7 goto :goto_1d .line 2847 :cond_40 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, p1 const-string v6, "\"true\"" invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result p2 if-eqz p2, :cond_50 add-int/lit8 p1, p1, 0x6 goto :goto_2e .line 2850 :cond_50 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, p1 invoke-virtual {p2, v5}, Ljava/lang/String;->charAt(I)C move-result p2 const/16 v5, 0x31 if-ne p2, v5, :cond_5f add-int/2addr p1, v4 goto :goto_2e .line 2853 :cond_5f iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, p1 invoke-virtual {p2, v5}, Ljava/lang/String;->charAt(I)C move-result p2 const/16 v5, 0x30 if-ne p2, v5, :cond_6e add-int/2addr p1, v4 goto :goto_1d .line 2856 :cond_6e iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, p1 const-string v6, "\"1\"" invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result p2 if-eqz p2, :cond_7d add-int/2addr p1, v3 goto :goto_2e .line 2859 :cond_7d iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, p1 const-string v6, "\"0\"" invoke-virtual {p2, v6, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result p2 if-eqz p2, :cond_158 add-int/2addr p1, v3 goto :goto_1d .line 2868 :goto_8c iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, p1, 0x1 add-int/2addr v5, p1 .line 2869 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const/16 v7, 0x1a if-lt v5, p1, :cond_99 move p1, v7 goto :goto_9f :cond_99 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2871 invoke-virtual {p1, v5}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_9f const/16 v5, 0x10 const/16 v8, 0x2c if-ne p1, v8, :cond_be .line 2875 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v6, v4 add-int/2addr p1, v6 add-int/2addr p1, v4 .line 2878 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2879 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_b1 goto :goto_b7 :cond_b1 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2881 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v7 :goto_b7 iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 2883 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2884 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return p2 :cond_be const/16 v9, 0xd const/16 v10, 0x7d if-eq p1, v10, :cond_ed const/16 v11, 0x20 if-eq p1, v11, :cond_da const/16 v11, 0xa if-eq p1, v11, :cond_da if-eq p1, v9, :cond_da const/16 v11, 0x9 if-eq p1, v11, :cond_da const/16 v11, 0xc if-eq p1, v11, :cond_da const/16 v11, 0x8 if-ne p1, v11, :cond_ed .line 2894 :cond_da iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v6, 0x1 add-int/2addr p1, v6 .line 2895 iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v6, :cond_e5 move p1, v7 goto :goto_eb :cond_e5 iget-object v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2897 invoke-virtual {v6, p1}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_eb move v6, v5 goto :goto_9f :cond_ed if-ne p1, v10, :cond_155 .line 2904 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v6 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result p1 if-ne p1, v8, :cond_10e .line 2906 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2907 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v6 add-int/2addr p1, v4 .line 2910 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2911 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_105 goto :goto_10b :cond_105 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2913 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v7 :goto_10b iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_14f :cond_10e const/16 v3, 0x5d if-ne p1, v3, :cond_12a const/16 p1, 0xf .line 2916 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2917 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v6 add-int/2addr p1, v4 .line 2920 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2921 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_121 goto :goto_127 :cond_121 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2923 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v7 :goto_127 iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_14f :cond_12a if-ne p1, v10, :cond_142 .line 2926 iput v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2927 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v6 add-int/2addr p1, v4 .line 2930 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2931 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_139 goto :goto_13f :cond_139 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2933 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result v7 :goto_13f iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_14f :cond_142 if-ne p1, v7, :cond_152 const/16 p1, 0x14 .line 2936 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2937 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v6 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2938 iput-char v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 2943 :goto_14f iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return p2 .line 2940 :cond_152 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 .line 2945 :cond_155 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 .line 2863 :cond_158 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 .end method .method public scanFieldDate(J)Ljava/util/Date; .registers 14 const/4 v0, 0x0 .line 2678 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2680 invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result p1 const/4 p2, 0x0 if-nez p1, :cond_b return-object p2 .line 2685 :cond_b iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, p1, 0x1 add-int v3, v1, p1 .line 2692 iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const/16 v5, 0x1a if-lt v3, v4, :cond_19 move v3, v5 goto :goto_1f :cond_19 iget-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2694 invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_1f const/16 v4, 0x22 const/4 v6, -0x1 if-ne v3, v4, :cond_67 .line 2703 iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v7, v3, v2 add-int/lit8 p1, p1, 0x2 add-int/2addr v3, v2 .line 2706 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v2, :cond_30 goto :goto_35 :cond_30 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2708 invoke-virtual {v2, v3}, Ljava/lang/String;->charAt(I)C .line 2712 :goto_35 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, p1 invoke-virtual {v2, v4, v3}, Ljava/lang/String;->indexOf(II)I move-result v2 if-eq v2, v6, :cond_5f sub-int/2addr v2, v7 .line 2717 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2718 invoke-virtual {p0, v0, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(ZI)Z move-result v0 if-eqz v0, :cond_5a .line 2719 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v0}, Ljava/util/Calendar;->getTime()Ljava/util/Date; move-result-object v0 add-int/2addr p1, v2 add-int/lit8 v2, p1, 0x1 add-int/2addr p1, v1 .line 2727 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result p1 .line 2728 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I goto :goto_ba .line 2721 :cond_5a iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2722 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object p2 .line 2714 :cond_5f new-instance p1, Lcom/alibaba/fastjson/JSONException; const-string p2, "unclosed str" invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 :cond_67 const/16 p1, 0x30 if-lt v3, p1, :cond_14f const/16 v0, 0x39 if-gt v3, v0, :cond_14f sub-int/2addr v3, p1 int-to-long v7, v3 .line 2735 :goto_71 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v3, v2, 0x1 add-int/2addr v1, v2 .line 2736 iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v9, :cond_7c move v1, v5 goto :goto_82 :cond_7c iget-object v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2738 invoke-virtual {v9, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_82 if-lt v1, p1, :cond_8f if-gt v1, v0, :cond_8f const-wide/16 v9, 0xa mul-long/2addr v7, v9 add-int/lit8 v1, v1, -0x30 int-to-long v1, v1 add-long/2addr v7, v1 move v2, v3 goto :goto_71 :cond_8f const/16 p1, 0x2e if-ne v1, p1, :cond_96 .line 2743 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object p2 :cond_96 if-ne v1, v4, :cond_aa .line 2746 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr p1, v3 .line 2747 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v0, :cond_a3 move p1, v5 goto :goto_ac :cond_a3 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2749 invoke-virtual {v0, p1}, Ljava/lang/String;->charAt(I)C move-result p1 goto :goto_ac :cond_aa move p1, v1 move v2, v3 :goto_ac const-wide/16 v0, 0x0 cmp-long v0, v7, v0 if-gez v0, :cond_b5 .line 2756 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object p2 .line 2760 :cond_b5 new-instance v0, Ljava/util/Date; invoke-direct {v0, v7, v8}, Ljava/util/Date;->(J)V :goto_ba const/16 v1, 0x10 const/16 v3, 0x2c if-ne p1, v3, :cond_dc .line 2767 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, -0x1 add-int/2addr p1, v2 add-int/lit8 p1, p1, 0x1 .line 2770 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2771 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, p2, :cond_ce goto :goto_d4 :cond_ce iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2773 invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_d4 iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 p1, 0x3 .line 2775 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2776 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v0 :cond_dc const/16 v4, 0x7d if-ne p1, v4, :cond_14c .line 2781 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v2 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result p1 if-ne p1, v3, :cond_100 .line 2783 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2784 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v2 add-int/lit8 p1, p1, 0x1 .line 2787 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2788 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, p2, :cond_f7 goto :goto_fd :cond_f7 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2790 invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_fd iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_145 :cond_100 const/16 v1, 0x5d if-ne p1, v1, :cond_11d const/16 p1, 0xf .line 2793 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2794 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v2 add-int/lit8 p1, p1, 0x1 .line 2797 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2798 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, p2, :cond_114 goto :goto_11a :cond_114 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2800 invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_11a iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_145 :cond_11d if-ne p1, v4, :cond_138 const/16 p1, 0xd .line 2803 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2804 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v2 add-int/lit8 p1, p1, 0x1 .line 2807 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2808 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, p2, :cond_12f goto :goto_135 :cond_12f iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2810 invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_135 iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_145 :cond_138 if-ne p1, v5, :cond_149 const/16 p1, 0x14 .line 2813 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2814 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v2 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2815 iput-char v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_145 const/4 p1, 0x4 .line 2820 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v0 .line 2817 :cond_149 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object p2 .line 2822 :cond_14c iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object p2 .line 2762 :cond_14f iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object p2 .end method .method public final scanFieldDouble(J)D .registers 21 move-object/from16 v0, p0 const/4 v1, 0x0 .line 3512 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3514 invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result v2 const-wide/16 v3, 0x0 if-nez v2, :cond_e return-wide v3 .line 3519 :cond_e iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, v2, 0x1 add-int/2addr v5, v2 invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v5 .line 3521 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v8, v7, v6 const/4 v9, 0x1 sub-int/2addr v8, v9 const/16 v10, 0x2d if-ne v5, v10, :cond_23 move v11, v9 goto :goto_24 :cond_23 move v11, v1 :goto_24 if-eqz v11, :cond_2e add-int/lit8 v2, v2, 0x2 add-int/2addr v7, v6 .line 3524 invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v5 move v6, v2 :cond_2e const/4 v2, -0x1 const/16 v7, 0x30 if-lt v5, v7, :cond_142 const/16 v12, 0x39 if-gt v5, v12, :cond_142 sub-int/2addr v5, v7 .line 3531 :goto_38 iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v14, v6, 0x1 add-int/2addr v13, v6 invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v13 if-lt v13, v7, :cond_4c if-gt v13, v12, :cond_4c mul-int/lit8 v5, v5, 0xa add-int/lit8 v13, v13, -0x30 add-int/2addr v5, v13 move v6, v14 goto :goto_38 :cond_4c const/16 v15, 0x2e const/16 v1, 0xa if-ne v13, v15, :cond_84 .line 3543 iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, v6, 0x2 add-int/2addr v13, v14 invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v13 if-lt v13, v7, :cond_81 if-gt v13, v12, :cond_81 mul-int/lit8 v5, v5, 0xa sub-int/2addr v13, v7 add-int/2addr v5, v13 move v13, v1 .line 3548 :goto_64 iget v14, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v15, v6, 0x1 add-int/2addr v14, v6 invoke-virtual {v0, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v6 if-lt v6, v7, :cond_7a if-gt v6, v12, :cond_7a mul-int/lit8 v5, v5, 0xa add-int/lit8 v6, v6, -0x30 add-int/2addr v5, v6 mul-int/lit8 v13, v13, 0xa move v6, v15 goto :goto_64 :cond_7a move v14, v15 move/from16 v17, v13 move v13, v6 move/from16 v6, v17 goto :goto_85 .line 3558 :cond_81 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 :cond_84 move v6, v9 :goto_85 const/16 v15, 0x65 if-eq v13, v15, :cond_91 const/16 v15, 0x45 if-ne v13, v15, :cond_8e goto :goto_91 :cond_8e const/16 v16, 0x0 goto :goto_93 :cond_91 :goto_91 move/from16 v16, v9 :goto_93 if-eqz v16, :cond_c0 .line 3565 iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v15, v14, 0x1 add-int/2addr v13, v14 invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v13 const/16 v3, 0x2b if-eq v13, v3, :cond_a7 if-ne v13, v10, :cond_a5 goto :goto_a7 :cond_a5 move v14, v15 goto :goto_b1 .line 3567 :cond_a7 :goto_a7 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v14, v14, 0x2 add-int/2addr v3, v15 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 move v13, v3 :goto_b1 if-lt v13, v7, :cond_c0 if-gt v13, v12, :cond_c0 .line 3571 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v4, v14, 0x1 add-int/2addr v3, v14 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v13 move v14, v4 goto :goto_b1 .line 3578 :cond_c0 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v14 sub-int/2addr v3, v8 sub-int/2addr v3, v9 if-nez v16, :cond_d0 if-ge v3, v1, :cond_d0 int-to-double v3, v5 int-to-double v5, v6 div-double/2addr v3, v5 if-eqz v11, :cond_d8 neg-double v3, v3 goto :goto_d8 .line 3585 :cond_d0 invoke-direct {v0, v8, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v1 .line 3586 invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v3 :cond_d8 :goto_d8 const/16 v1, 0x10 const/16 v5, 0x2c if-ne v13, v5, :cond_ed .line 3594 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v14, v9 add-int/2addr v2, v14 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3595 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C const/4 v2, 0x3 .line 3596 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3597 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-wide v3 :cond_ed const/16 v6, 0x7d if-ne v13, v6, :cond_13d .line 3602 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v7, v14 invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v7 if-ne v7, v5, :cond_105 .line 3604 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3605 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v14 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3606 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_134 :cond_105 const/16 v1, 0x5d if-ne v7, v1, :cond_116 const/16 v1, 0xf .line 3608 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3609 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v14 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3610 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_134 :cond_116 if-ne v7, v6, :cond_125 const/16 v1, 0xd .line 3612 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3613 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v14 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3614 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_134 :cond_125 const/16 v1, 0x1a if-ne v7, v1, :cond_138 .line 3616 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v14 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v2, 0x14 .line 3617 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3618 iput-char v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_134 const/4 v1, 0x4 .line 3623 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 .line 3620 :cond_138 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const-wide/16 v3, 0x0 return-wide v3 :cond_13d const-wide/16 v3, 0x0 .line 3625 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 .line 3589 :cond_142 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 .end method .method public final scanFieldDoubleArray(J)[D .registers 22 move-object/from16 v0, p0 const/4 v1, 0x0 .line 3633 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3635 invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result v2 const/4 v3, 0x0 if-nez v2, :cond_d return-object v3 .line 3639 :cond_d iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v2, 0x1 add-int/2addr v4, v2 .line 3640 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v6, :cond_19 const/16 v4, 0x1a goto :goto_1f :cond_19 iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3642 invoke-virtual {v6, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_1f const/16 v6, 0x5b const/4 v8, -0x1 if-eq v4, v6, :cond_27 .line 3644 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 .line 3648 :cond_27 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr v4, v5 .line 3649 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_33 const/16 v4, 0x1a goto :goto_39 :cond_33 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3651 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_39 const/16 v5, 0x10 .line 3653 new-array v6, v5, [D move v9, v1 .line 3657 :goto_3e iget v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v11, v10, v2 const/4 v12, 0x1 sub-int/2addr v11, v12 const/16 v13, 0x2d if-ne v4, v13, :cond_4a move v14, v12 goto :goto_4b :cond_4a move v14, v1 :goto_4b if-eqz v14, :cond_62 add-int/lit8 v4, v2, 0x1 add-int/2addr v10, v2 .line 3663 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v10, v2, :cond_57 const/16 v2, 0x1a goto :goto_5d :cond_57 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3665 invoke-virtual {v2, v10}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_5d move/from16 v18, v4 move v4, v2 move/from16 v2, v18 :cond_62 const/16 v10, 0x30 if-lt v4, v10, :cond_22f const/16 v15, 0x39 if-gt v4, v15, :cond_22f add-int/lit8 v4, v4, -0x30 .line 3672 :goto_6c iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v2, 0x1 add-int/2addr v7, v2 .line 3673 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v7, v5, :cond_78 const/16 v5, 0x1a goto :goto_7e :cond_78 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3675 invoke-virtual {v5, v7}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_7e if-lt v5, v10, :cond_8c if-gt v5, v15, :cond_8c mul-int/lit8 v4, v4, 0xa add-int/lit8 v5, v5, -0x30 add-int/2addr v4, v5 move/from16 v2, v16 const/16 v5, 0x10 goto :goto_6c :cond_8c const/16 v7, 0x2e if-ne v5, v7, :cond_92 move v7, v12 goto :goto_93 :cond_92 move v7, v1 :goto_93 const/16 v1, 0xa if-eqz v7, :cond_dd .line 3688 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int v5, v5, v16 .line 3689 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v7, :cond_a4 const/16 v5, 0x1a goto :goto_aa :cond_a4 iget-object v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3691 invoke-virtual {v7, v5}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_aa if-lt v5, v10, :cond_da if-gt v5, v15, :cond_da mul-int/lit8 v4, v4, 0xa add-int/lit8 v5, v5, -0x30 add-int/2addr v4, v5 move v5, v1 .line 3697 :goto_b4 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v2, 0x1 add-int/2addr v7, v2 .line 3698 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v7, v2, :cond_c0 const/16 v2, 0x1a goto :goto_c6 :cond_c0 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3700 invoke-virtual {v2, v7}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_c6 if-lt v2, v10, :cond_d4 if-gt v2, v15, :cond_d4 mul-int/lit8 v4, v4, 0xa add-int/lit8 v2, v2, -0x30 add-int/2addr v4, v2 mul-int/lit8 v5, v5, 0xa move/from16 v2, v16 goto :goto_b4 :cond_d4 move/from16 v18, v5 move v5, v2 move/from16 v2, v18 goto :goto_de .line 3711 :cond_da iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 :cond_dd move v2, v12 :goto_de const/16 v7, 0x65 if-eq v5, v7, :cond_e9 const/16 v7, 0x45 if-ne v5, v7, :cond_e7 goto :goto_e9 :cond_e7 const/4 v7, 0x0 goto :goto_ea :cond_e9 :goto_e9 move v7, v12 :goto_ea if-eqz v7, :cond_138 .line 3719 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v16, 0x1 add-int v5, v5, v16 .line 3720 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v3, :cond_f9 const/16 v3, 0x1a goto :goto_ff :cond_f9 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3722 invoke-virtual {v3, v5}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_ff const/16 v5, 0x2b if-eq v3, v5, :cond_10a if-ne v3, v13, :cond_106 goto :goto_10a :cond_106 move v5, v3 move/from16 v16, v17 goto :goto_11e .line 3725 :cond_10a :goto_10a iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x2 add-int v3, v3, v17 .line 3726 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v5, :cond_117 const/16 v3, 0x1a goto :goto_11d :cond_117 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3728 invoke-virtual {v5, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_11d move v5, v3 :goto_11e if-lt v5, v10, :cond_138 if-gt v5, v15, :cond_138 .line 3733 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v16, 0x1 add-int v3, v3, v16 .line 3734 iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v13, :cond_12f const/16 v3, 0x1a goto :goto_135 :cond_12f iget-object v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3736 invoke-virtual {v13, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_135 move/from16 v16, v5 goto :goto_11d .line 3743 :cond_138 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v3, v3, v16 sub-int/2addr v3, v11 sub-int/2addr v3, v12 if-nez v7, :cond_149 if-ge v3, v1, :cond_149 int-to-double v3, v4 int-to-double v1, v2 div-double/2addr v3, v1 if-eqz v14, :cond_151 neg-double v3, v3 goto :goto_151 .line 3752 :cond_149 invoke-direct {v0, v11, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v1 .line 3753 invoke-static {v1}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v3 .line 3756 :cond_151 :goto_151 array-length v1, v6 const/4 v2, 0x3 if-lt v9, v1, :cond_160 .line 3757 array-length v1, v6 mul-int/2addr v1, v2 div-int/lit8 v1, v1, 0x2 new-array v1, v1, [D const/4 v7, 0x0 .line 3758 invoke-static {v6, v7, v1, v7, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v6, v1 :cond_160 add-int/lit8 v7, v9, 0x1 .line 3761 aput-wide v3, v6, v9 const/16 v1, 0x2c if-ne v5, v1, :cond_186 .line 3765 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v16, 0x1 add-int v1, v1, v16 .line 3766 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_175 const/16 v1, 0x1a goto :goto_17b :cond_175 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3768 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_17b move v4, v1 move/from16 v16, v2 const/16 v1, 0x10 const/16 v2, 0x1a const/4 v3, 0x0 const/4 v10, 0x0 goto/16 :goto_228 :cond_186 const/16 v3, 0x5d if-ne v5, v3, :cond_221 .line 3771 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v16, 0x1 add-int v4, v4, v16 .line 3772 iget v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v9, :cond_197 const/16 v4, 0x1a goto :goto_19d :cond_197 iget-object v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3774 invoke-virtual {v9, v4}, Ljava/lang/String;->charAt(I)C move-result v4 .line 3784 :goto_19d array-length v9, v6 if-eq v7, v9, :cond_1a7 .line 3785 new-array v9, v7, [D const/4 v10, 0x0 .line 3786 invoke-static {v6, v10, v9, v10, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v6, v9 :cond_1a7 if-ne v4, v1, :cond_1b9 .line 3791 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3792 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 3793 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/16 v1, 0x10 .line 3794 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v6 :cond_1b9 const/16 v2, 0x7d if-ne v4, v2, :cond_21d .line 3800 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v4, v5 .line 3801 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_1c7 const/16 v4, 0x1a goto :goto_1cd :cond_1c7 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3803 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_1cd if-ne v4, v1, :cond_1df const/16 v1, 0x10 .line 3805 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3806 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x1 add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3807 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_215 :cond_1df if-ne v4, v3, :cond_1f1 const/16 v1, 0xf .line 3809 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3810 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x1 add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3811 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_215 :cond_1f1 if-ne v4, v2, :cond_203 const/16 v1, 0xd .line 3813 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3814 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x1 add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3815 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_215 :cond_203 const/16 v2, 0x1a if-ne v4, v2, :cond_219 .line 3817 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x1 add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v1, 0x14 .line 3818 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3819 iput-char v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_215 const/4 v1, 0x4 .line 3824 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v6 .line 3821 :cond_219 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/4 v3, 0x0 return-object v3 :cond_21d const/4 v3, 0x0 .line 3826 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 :cond_221 const/16 v1, 0x10 const/16 v2, 0x1a const/4 v3, 0x0 const/4 v10, 0x0 move v4, v5 :goto_228 move v5, v1 move v9, v7 move v1, v10 move/from16 v2, v16 goto/16 :goto_3e .line 3778 :cond_22f iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 .end method .method public final scanFieldDoubleArray2(J)[[D .registers 23 move-object/from16 v0, p0 const/4 v1, 0x0 .line 3834 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3836 invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result v2 const/4 v3, 0x0 if-nez v2, :cond_10 .line 3838 move-object v1, v3 check-cast v1, [[D return-object v3 .line 3840 :cond_10 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v2, 0x1 add-int/2addr v4, v2 .line 3841 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v6, :cond_1c const/16 v4, 0x1a goto :goto_22 :cond_1c iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3843 invoke-virtual {v6, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_22 const/16 v6, 0x5b const/4 v8, -0x1 if-eq v4, v6, :cond_2d .line 3846 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3847 move-object v1, v3 check-cast v1, [[D return-object v3 .line 3850 :cond_2d iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr v4, v5 .line 3851 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_39 const/16 v4, 0x1a goto :goto_3f :cond_39 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3853 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_3f const/16 v5, 0x10 .line 3855 new-array v9, v5, [[D move v10, v1 :goto_44 if-ne v4, v6, :cond_2ac .line 3861 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v11, v2, 0x1 add-int/2addr v4, v2 .line 3862 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v2, :cond_52 const/16 v2, 0x1a goto :goto_58 :cond_52 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3864 invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C move-result v2 .line 3866 :goto_58 new-array v4, v5, [D move v12, v1 .line 3870 :goto_5b iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v14, v13, v11 const/4 v15, 0x1 sub-int/2addr v14, v15 const/16 v6, 0x2d if-ne v2, v6, :cond_68 move/from16 v16, v15 goto :goto_6a :cond_68 move/from16 v16, v1 :goto_6a if-eqz v16, :cond_81 add-int/lit8 v2, v11, 0x1 add-int/2addr v13, v11 .line 3875 iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v13, v11, :cond_76 const/16 v11, 0x1a goto :goto_7c :cond_76 iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3877 invoke-virtual {v11, v13}, Ljava/lang/String;->charAt(I)C move-result v11 :goto_7c move/from16 v19, v11 move v11, v2 move/from16 v2, v19 :cond_81 const/16 v13, 0x30 if-lt v2, v13, :cond_2a5 const/16 v7, 0x39 if-gt v2, v7, :cond_2a5 add-int/lit8 v2, v2, -0x30 .line 3884 :goto_8b iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v11, 0x1 add-int/2addr v5, v11 .line 3885 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v1, :cond_97 const/16 v1, 0x1a goto :goto_9d :cond_97 iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3887 invoke-virtual {v1, v5}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_9d if-lt v1, v13, :cond_aa if-gt v1, v7, :cond_aa mul-int/lit8 v2, v2, 0xa add-int/lit8 v1, v1, -0x30 add-int/2addr v2, v1 move/from16 v11, v17 const/4 v1, 0x0 goto :goto_8b :cond_aa const/16 v5, 0x2e const/16 v15, 0xa if-ne v1, v5, :cond_fa .line 3900 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v11, v11, 0x2 add-int v1, v1, v17 .line 3901 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v5, :cond_bd const/16 v1, 0x1a goto :goto_c3 :cond_bd iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3903 invoke-virtual {v5, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_c3 if-lt v1, v13, :cond_f4 if-gt v1, v7, :cond_f4 mul-int/lit8 v2, v2, 0xa add-int/lit8 v1, v1, -0x30 add-int/2addr v2, v1 move v1, v15 .line 3910 :goto_cd iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v11, 0x1 add-int/2addr v5, v11 .line 3911 iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v11, :cond_d9 const/16 v5, 0x1a goto :goto_df :cond_d9 iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3913 invoke-virtual {v11, v5}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_df if-lt v5, v13, :cond_ed if-gt v5, v7, :cond_ed mul-int/lit8 v2, v2, 0xa add-int/lit8 v5, v5, -0x30 add-int/2addr v2, v5 mul-int/lit8 v1, v1, 0xa move/from16 v11, v17 goto :goto_cd :cond_ed move/from16 v19, v2 move v2, v1 move v1, v5 move/from16 v5, v19 goto :goto_fc .line 3924 :cond_f4 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3925 move-object v1, v3 check-cast v1, [[D return-object v3 :cond_fa move v5, v2 const/4 v2, 0x1 :goto_fc const/16 v11, 0x65 if-eq v1, v11, :cond_107 const/16 v11, 0x45 if-ne v1, v11, :cond_105 goto :goto_107 :cond_105 const/4 v11, 0x0 goto :goto_108 :cond_107 :goto_107 const/4 v11, 0x1 :goto_108 if-eqz v11, :cond_154 .line 3932 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v18, v17, 0x1 add-int v1, v1, v17 .line 3933 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_117 const/16 v1, 0x1a goto :goto_11d :cond_117 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3935 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_11d const/16 v3, 0x2b if-eq v1, v3, :cond_127 if-ne v1, v6, :cond_124 goto :goto_127 :cond_124 move/from16 v17, v18 goto :goto_13a .line 3938 :cond_127 :goto_127 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v18 .line 3939 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_134 const/16 v1, 0x1a goto :goto_13a :cond_134 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3941 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_13a if-lt v1, v13, :cond_154 if-gt v1, v7, :cond_154 .line 3946 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v3, v17, 0x1 add-int v1, v1, v17 .line 3947 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v6, :cond_14b const/16 v1, 0x1a goto :goto_151 :cond_14b iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3949 invoke-virtual {v6, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_151 move/from16 v17, v3 goto :goto_13a .line 3956 :cond_154 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v3, v3, v17 sub-int/2addr v3, v14 const/4 v6, 0x1 sub-int/2addr v3, v6 if-nez v11, :cond_166 if-ge v3, v15, :cond_166 int-to-double v5, v5 int-to-double v2, v2 div-double/2addr v5, v2 if-eqz v16, :cond_16e neg-double v5, v5 goto :goto_16e .line 3964 :cond_166 invoke-direct {v0, v14, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v2 .line 3965 invoke-static {v2}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v5 .line 3968 :cond_16e :goto_16e array-length v2, v4 const/4 v3, 0x3 if-lt v12, v2, :cond_17d .line 3969 array-length v2, v4 mul-int/2addr v2, v3 div-int/lit8 v2, v2, 0x2 new-array v2, v2, [D const/4 v7, 0x0 .line 3970 invoke-static {v4, v7, v2, v7, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v4, v2 :cond_17d add-int/lit8 v2, v12, 0x1 .line 3973 aput-wide v5, v4, v12 const/16 v5, 0x2c if-ne v1, v5, :cond_19c .line 3977 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v3, v17, 0x1 add-int v1, v1, v17 .line 3978 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v5, :cond_192 const/16 v1, 0x1a goto :goto_198 :cond_192 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3980 invoke-virtual {v5, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_198 move/from16 v17, v3 goto/16 :goto_294 :cond_19c const/16 v6, 0x5d if-ne v1, v6, :cond_294 .line 3983 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v7, v17, 0x1 add-int v1, v1, v17 .line 3984 iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v11, :cond_1ad const/16 v1, 0x1a goto :goto_1b3 :cond_1ad iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3986 invoke-virtual {v11, v1}, Ljava/lang/String;->charAt(I)C move-result v1 .line 3996 :goto_1b3 array-length v11, v4 if-eq v2, v11, :cond_1be .line 3997 new-array v11, v2, [D const/4 v12, 0x0 .line 3998 invoke-static {v4, v12, v11, v12, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v4, v11 goto :goto_1bf :cond_1be const/4 v12, 0x0 .line 4002 :goto_1bf array-length v11, v9 if-lt v10, v11, :cond_1cb .line 4003 array-length v9, v9 mul-int/2addr v9, v3 div-int/lit8 v9, v9, 0x2 new-array v9, v9, [[D .line 4004 invoke-static {v4, v12, v9, v12, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V :cond_1cb add-int/lit8 v2, v10, 0x1 .line 4007 aput-object v4, v9, v10 if-ne v1, v5, :cond_1ec .line 4011 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int/2addr v1, v7 .line 4012 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_1dd const/16 v1, 0x1a goto :goto_1e3 :cond_1dd iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 4014 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_1e3 move v4, v1 const/16 v3, 0x10 const/16 v5, 0x1a const/4 v6, 0x0 const/4 v11, 0x0 goto/16 :goto_28d :cond_1ec if-ne v1, v6, :cond_284 .line 4017 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v4, v17, 0x2 add-int/2addr v1, v7 .line 4018 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v7, :cond_1fa const/16 v1, 0x1a goto :goto_200 :cond_1fa iget-object v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 4020 invoke-virtual {v7, v1}, Ljava/lang/String;->charAt(I)C move-result v1 .line 4027 :goto_200 array-length v7, v9 if-eq v2, v7, :cond_20a .line 4028 new-array v7, v2, [[D const/4 v11, 0x0 .line 4029 invoke-static {v9, v11, v7, v11, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v9, v7 :cond_20a if-ne v1, v5, :cond_21f .line 4034 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v2, 0x1 add-int/lit8 v17, v17, 0x1 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4035 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 4036 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/16 v3, 0x10 .line 4037 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v9 :cond_21f const/16 v3, 0x10 const/16 v2, 0x7d if-ne v1, v2, :cond_27d .line 4042 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v4 invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 if-ne v1, v5, :cond_23c .line 4044 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 4045 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4046 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_272 :cond_23c if-ne v1, v6, :cond_24e const/16 v1, 0xf .line 4048 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 4049 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4050 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_272 :cond_24e if-ne v1, v2, :cond_260 const/16 v1, 0xd .line 4052 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 4053 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4054 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_272 :cond_260 const/16 v5, 0x1a if-ne v1, v5, :cond_276 .line 4056 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v1, 0x14 .line 4057 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 4058 iput-char v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_272 const/4 v1, 0x4 .line 4063 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v9 .line 4060 :cond_276 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/4 v6, 0x0 .line 4061 move-object v3, v6 check-cast v3, [[D return-object v6 :cond_27d const/4 v6, 0x0 .line 4065 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 4066 move-object v3, v6 check-cast v3, [[D return-object v6 :cond_284 const/16 v3, 0x10 const/16 v5, 0x1a const/4 v6, 0x0 const/4 v11, 0x0 move v4, v1 move/from16 v17, v7 :goto_28d move v10, v2 move v5, v3 move-object v3, v6 move v1, v11 move/from16 v2, v17 goto :goto_2ad :cond_294 :goto_294 const/16 v3, 0x10 const/16 v5, 0x1a const/4 v6, 0x0 const/4 v11, 0x0 move v12, v2 move v5, v3 move-object v3, v6 const/16 v6, 0x5b move v2, v1 move v1, v11 move/from16 v11, v17 goto/16 :goto_5b :cond_2a5 move-object v6, v3 .line 3990 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3991 move-object v3, v6 check-cast v3, [[D return-object v6 :cond_2ac move-object v6, v3 :goto_2ad const/16 v6, 0x5b goto/16 :goto_44 .end method .method public final scanFieldFloat(J)F .registers 20 move-object/from16 v0, p0 const/4 v1, 0x0 .line 2953 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2955 invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result v2 const/4 v3, 0x0 if-nez v2, :cond_d return v3 .line 2960 :cond_d iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v2, 0x1 add-int/2addr v4, v2 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v4 .line 2962 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v7, v6, v5 const/4 v8, 0x1 sub-int/2addr v7, v8 const/16 v9, 0x2d if-ne v4, v9, :cond_22 move v10, v8 goto :goto_23 :cond_22 move v10, v1 :goto_23 if-eqz v10, :cond_2d add-int/lit8 v2, v2, 0x2 add-int/2addr v6, v5 .line 2965 invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v4 move v5, v2 :cond_2d const/4 v2, -0x1 const/16 v6, 0x30 if-lt v4, v6, :cond_13a const/16 v11, 0x39 if-gt v4, v11, :cond_13a sub-int/2addr v4, v6 .line 2972 :goto_37 iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v13, v5, 0x1 add-int/2addr v12, v5 invoke-virtual {v0, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v12 if-lt v12, v6, :cond_4b if-gt v12, v11, :cond_4b mul-int/lit8 v4, v4, 0xa add-int/lit8 v12, v12, -0x30 add-int/2addr v4, v12 move v5, v13 goto :goto_37 :cond_4b const/16 v14, 0x2e const/16 v15, 0xa if-ne v12, v14, :cond_83 .line 2984 iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v5, 0x2 add-int/2addr v12, v13 invoke-virtual {v0, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v12 if-lt v12, v6, :cond_80 if-gt v12, v11, :cond_80 mul-int/lit8 v4, v4, 0xa sub-int/2addr v12, v6 add-int/2addr v4, v12 move v12, v15 .line 2987 :goto_63 iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v14, v5, 0x1 add-int/2addr v13, v5 invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v5 if-lt v5, v6, :cond_79 if-gt v5, v11, :cond_79 mul-int/lit8 v4, v4, 0xa add-int/lit8 v5, v5, -0x30 add-int/2addr v4, v5 mul-int/lit8 v12, v12, 0xa move v5, v14 goto :goto_63 :cond_79 move v13, v14 move/from16 v16, v12 move v12, v5 move/from16 v5, v16 goto :goto_84 .line 2997 :cond_80 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v3 :cond_83 move v5, v8 :goto_84 const/16 v14, 0x65 if-eq v12, v14, :cond_8c const/16 v14, 0x45 if-ne v12, v14, :cond_8d :cond_8c move v1, v8 :cond_8d if-eqz v1, :cond_ba .line 3004 iget v12, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v14, v13, 0x1 add-int/2addr v12, v13 invoke-virtual {v0, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v12 const/16 v3, 0x2b if-eq v12, v3, :cond_a1 if-ne v12, v9, :cond_9f goto :goto_a1 :cond_9f move v13, v14 goto :goto_ab .line 3006 :cond_a1 :goto_a1 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v13, v13, 0x2 add-int/2addr v3, v14 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 move v12, v3 :goto_ab if-lt v12, v6, :cond_ba if-gt v12, v11, :cond_ba .line 3010 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v9, v13, 0x1 add-int/2addr v3, v13 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v12 move v13, v9 goto :goto_ab .line 3017 :cond_ba iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v13 sub-int/2addr v3, v7 sub-int/2addr v3, v8 if-nez v1, :cond_ca if-ge v3, v15, :cond_ca int-to-float v1, v4 int-to-float v3, v5 div-float/2addr v1, v3 if-eqz v10, :cond_d2 neg-float v1, v1 goto :goto_d2 .line 3024 :cond_ca invoke-direct {v0, v7, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v1 .line 3025 invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F move-result v1 :cond_d2 :goto_d2 const/16 v3, 0x10 const/16 v4, 0x2c if-ne v12, v4, :cond_e7 .line 3033 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v13, v8 add-int/2addr v2, v13 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3034 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C const/4 v2, 0x3 .line 3035 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3036 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return v1 :cond_e7 const/16 v5, 0x7d if-ne v12, v5, :cond_136 .line 3041 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v6, v13 invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v6 if-ne v6, v4, :cond_ff .line 3043 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3044 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v13 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3045 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_12e :cond_ff const/16 v3, 0x5d if-ne v6, v3, :cond_110 const/16 v2, 0xf .line 3047 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3048 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v13 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3049 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_12e :cond_110 if-ne v6, v5, :cond_11f const/16 v2, 0xd .line 3051 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3052 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v13 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3053 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_12e :cond_11f const/16 v3, 0x1a if-ne v6, v3, :cond_132 .line 3055 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v13 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v2, 0x14 .line 3056 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3057 iput-char v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_12e const/4 v2, 0x4 .line 3062 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v1 .line 3059 :cond_132 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/4 v1, 0x0 return v1 :cond_136 const/4 v1, 0x0 .line 3064 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v1 :cond_13a move v1, v3 .line 3028 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v1 .end method .method public final scanFieldFloatArray(J)[F .registers 22 move-object/from16 v0, p0 const/4 v1, 0x0 .line 3072 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3074 invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result v2 const/4 v3, 0x0 if-nez v2, :cond_d return-object v3 .line 3078 :cond_d iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v2, 0x1 add-int/2addr v4, v2 .line 3079 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v6, :cond_19 const/16 v4, 0x1a goto :goto_1f :cond_19 iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3081 invoke-virtual {v6, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_1f const/16 v6, 0x5b const/4 v8, -0x1 if-eq v4, v6, :cond_27 .line 3083 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 .line 3087 :cond_27 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr v4, v5 .line 3088 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_33 const/16 v4, 0x1a goto :goto_39 :cond_33 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3090 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_39 const/16 v5, 0x10 .line 3092 new-array v6, v5, [F move v9, v1 .line 3096 :goto_3e iget v10, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v11, v10, v2 const/4 v12, 0x1 sub-int/2addr v11, v12 const/16 v13, 0x2d if-ne v4, v13, :cond_4a move v14, v12 goto :goto_4b :cond_4a move v14, v1 :goto_4b if-eqz v14, :cond_62 add-int/lit8 v4, v2, 0x1 add-int/2addr v10, v2 .line 3102 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v10, v2, :cond_57 const/16 v2, 0x1a goto :goto_5d :cond_57 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3104 invoke-virtual {v2, v10}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_5d move/from16 v18, v4 move v4, v2 move/from16 v2, v18 :cond_62 const/16 v10, 0x30 if-lt v4, v10, :cond_229 const/16 v15, 0x39 if-gt v4, v15, :cond_229 add-int/lit8 v4, v4, -0x30 .line 3111 :goto_6c iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v2, 0x1 add-int/2addr v7, v2 .line 3112 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v7, v5, :cond_78 const/16 v5, 0x1a goto :goto_7e :cond_78 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3114 invoke-virtual {v5, v7}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_7e if-lt v5, v10, :cond_8c if-gt v5, v15, :cond_8c mul-int/lit8 v4, v4, 0xa add-int/lit8 v5, v5, -0x30 add-int/2addr v4, v5 move/from16 v2, v16 const/16 v5, 0x10 goto :goto_6c :cond_8c const/16 v7, 0x2e if-ne v5, v7, :cond_92 move v7, v12 goto :goto_93 :cond_92 move v7, v1 :goto_93 const/16 v1, 0xa if-eqz v7, :cond_dd .line 3127 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int v5, v5, v16 .line 3128 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v7, :cond_a4 const/16 v5, 0x1a goto :goto_aa :cond_a4 iget-object v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3130 invoke-virtual {v7, v5}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_aa if-lt v5, v10, :cond_da if-gt v5, v15, :cond_da mul-int/lit8 v4, v4, 0xa add-int/lit8 v5, v5, -0x30 add-int/2addr v4, v5 move v5, v1 .line 3136 :goto_b4 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v2, 0x1 add-int/2addr v7, v2 .line 3137 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v7, v2, :cond_c0 const/16 v2, 0x1a goto :goto_c6 :cond_c0 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3139 invoke-virtual {v2, v7}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_c6 if-lt v2, v10, :cond_d4 if-gt v2, v15, :cond_d4 mul-int/lit8 v4, v4, 0xa add-int/lit8 v2, v2, -0x30 add-int/2addr v4, v2 mul-int/lit8 v5, v5, 0xa move/from16 v2, v16 goto :goto_b4 :cond_d4 move/from16 v18, v5 move v5, v2 move/from16 v2, v18 goto :goto_de .line 3150 :cond_da iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 :cond_dd move v2, v12 :goto_de const/16 v7, 0x65 if-eq v5, v7, :cond_e9 const/16 v7, 0x45 if-ne v5, v7, :cond_e7 goto :goto_e9 :cond_e7 const/4 v7, 0x0 goto :goto_ea :cond_e9 :goto_e9 move v7, v12 :goto_ea if-eqz v7, :cond_138 .line 3158 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v16, 0x1 add-int v5, v5, v16 .line 3159 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v3, :cond_f9 const/16 v3, 0x1a goto :goto_ff :cond_f9 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3161 invoke-virtual {v3, v5}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_ff const/16 v5, 0x2b if-eq v3, v5, :cond_10a if-ne v3, v13, :cond_106 goto :goto_10a :cond_106 move v5, v3 move/from16 v16, v17 goto :goto_11e .line 3164 :cond_10a :goto_10a iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x2 add-int v3, v3, v17 .line 3165 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v5, :cond_117 const/16 v3, 0x1a goto :goto_11d :cond_117 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3167 invoke-virtual {v5, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_11d move v5, v3 :goto_11e if-lt v5, v10, :cond_138 if-gt v5, v15, :cond_138 .line 3172 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v16, 0x1 add-int v3, v3, v16 .line 3173 iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v13, :cond_12f const/16 v3, 0x1a goto :goto_135 :cond_12f iget-object v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3175 invoke-virtual {v13, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_135 move/from16 v16, v5 goto :goto_11d .line 3182 :cond_138 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v3, v3, v16 sub-int/2addr v3, v11 sub-int/2addr v3, v12 if-nez v7, :cond_149 if-ge v3, v1, :cond_149 int-to-float v1, v4 int-to-float v2, v2 div-float/2addr v1, v2 if-eqz v14, :cond_151 neg-float v1, v1 goto :goto_151 .line 3191 :cond_149 invoke-direct {v0, v11, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v1 .line 3192 invoke-static {v1}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F move-result v1 .line 3195 :cond_151 :goto_151 array-length v2, v6 const/4 v3, 0x3 if-lt v9, v2, :cond_160 .line 3196 array-length v2, v6 mul-int/2addr v2, v3 div-int/lit8 v2, v2, 0x2 new-array v2, v2, [F const/4 v4, 0x0 .line 3197 invoke-static {v6, v4, v2, v4, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v6, v2 :cond_160 add-int/lit8 v4, v9, 0x1 .line 3200 aput v1, v6, v9 const/16 v1, 0x2c if-ne v5, v1, :cond_180 .line 3204 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v16, 0x1 add-int v1, v1, v16 .line 3205 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_175 const/16 v1, 0x1a goto :goto_17b :cond_175 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3207 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_17b move v5, v1 move/from16 v16, v2 goto/16 :goto_21b :cond_180 const/16 v2, 0x5d if-ne v5, v2, :cond_21b .line 3210 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v7, v16, 0x1 add-int v5, v5, v16 .line 3211 iget v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v9, :cond_191 const/16 v5, 0x1a goto :goto_197 :cond_191 iget-object v9, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3213 invoke-virtual {v9, v5}, Ljava/lang/String;->charAt(I)C move-result v5 .line 3223 :goto_197 array-length v9, v6 if-eq v4, v9, :cond_1a1 .line 3224 new-array v9, v4, [F const/4 v10, 0x0 .line 3225 invoke-static {v6, v10, v9, v10, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v6, v9 :cond_1a1 if-ne v5, v1, :cond_1b3 .line 3230 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3231 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 3232 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/16 v1, 0x10 .line 3233 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v6 :cond_1b3 const/16 v3, 0x7d if-ne v5, v3, :cond_217 .line 3239 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v4, v7 .line 3240 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_1c1 const/16 v4, 0x1a goto :goto_1c7 :cond_1c1 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3242 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_1c7 if-ne v4, v1, :cond_1d9 const/16 v1, 0x10 .line 3244 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3245 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x1 add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3246 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_20f :cond_1d9 if-ne v4, v2, :cond_1eb const/16 v1, 0xf .line 3248 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3249 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x1 add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3250 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_20f :cond_1eb if-ne v4, v3, :cond_1fd const/16 v1, 0xd .line 3252 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3253 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x1 add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3254 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_20f :cond_1fd const/16 v2, 0x1a if-ne v4, v2, :cond_213 .line 3256 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v16, 0x1 add-int v1, v1, v16 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v1, 0x14 .line 3257 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3258 iput-char v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_20f const/4 v1, 0x4 .line 3263 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v6 .line 3260 :cond_213 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/4 v3, 0x0 return-object v3 :cond_217 const/4 v3, 0x0 .line 3265 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 :cond_21b :goto_21b const/16 v1, 0x10 const/16 v2, 0x1a const/4 v3, 0x0 const/4 v10, 0x0 move v9, v4 move v4, v5 move/from16 v2, v16 move v5, v1 move v1, v10 goto/16 :goto_3e .line 3217 :cond_229 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 .end method .method public final scanFieldFloatArray2(J)[[F .registers 23 move-object/from16 v0, p0 const/4 v1, 0x0 .line 3273 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3275 invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result v2 const/4 v3, 0x0 if-nez v2, :cond_10 .line 3277 move-object v1, v3 check-cast v1, [[F return-object v3 .line 3279 :cond_10 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v2, 0x1 add-int/2addr v4, v2 .line 3280 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v6, :cond_1c const/16 v4, 0x1a goto :goto_22 :cond_1c iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3282 invoke-virtual {v6, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_22 const/16 v6, 0x5b const/4 v8, -0x1 if-eq v4, v6, :cond_2d .line 3285 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3286 move-object v1, v3 check-cast v1, [[F return-object v3 .line 3289 :cond_2d iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr v4, v5 .line 3290 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_39 const/16 v4, 0x1a goto :goto_3f :cond_39 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3292 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_3f const/16 v5, 0x10 .line 3294 new-array v9, v5, [[F move v10, v1 :goto_44 if-ne v4, v6, :cond_2aa .line 3300 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v11, v2, 0x1 add-int/2addr v4, v2 .line 3301 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v2, :cond_52 const/16 v2, 0x1a goto :goto_58 :cond_52 iget-object v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3303 invoke-virtual {v2, v4}, Ljava/lang/String;->charAt(I)C move-result v2 .line 3305 :goto_58 new-array v4, v5, [F move v12, v1 .line 3309 :goto_5b iget v13, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v14, v13, v11 const/4 v15, 0x1 sub-int/2addr v14, v15 const/16 v6, 0x2d if-ne v2, v6, :cond_68 move/from16 v16, v15 goto :goto_6a :cond_68 move/from16 v16, v1 :goto_6a if-eqz v16, :cond_81 add-int/lit8 v2, v11, 0x1 add-int/2addr v13, v11 .line 3314 iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v13, v11, :cond_76 const/16 v11, 0x1a goto :goto_7c :cond_76 iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3316 invoke-virtual {v11, v13}, Ljava/lang/String;->charAt(I)C move-result v11 :goto_7c move/from16 v19, v11 move v11, v2 move/from16 v2, v19 :cond_81 const/16 v13, 0x30 if-lt v2, v13, :cond_2a3 const/16 v7, 0x39 if-gt v2, v7, :cond_2a3 add-int/lit8 v2, v2, -0x30 .line 3323 :goto_8b iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v11, 0x1 add-int/2addr v5, v11 .line 3324 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v1, :cond_97 const/16 v1, 0x1a goto :goto_9d :cond_97 iget-object v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3326 invoke-virtual {v1, v5}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_9d if-lt v1, v13, :cond_aa if-gt v1, v7, :cond_aa mul-int/lit8 v2, v2, 0xa add-int/lit8 v1, v1, -0x30 add-int/2addr v2, v1 move/from16 v11, v17 const/4 v1, 0x0 goto :goto_8b :cond_aa const/16 v5, 0x2e const/16 v15, 0xa if-ne v1, v5, :cond_fa .line 3339 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v11, v11, 0x2 add-int v1, v1, v17 .line 3340 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v5, :cond_bd const/16 v1, 0x1a goto :goto_c3 :cond_bd iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3342 invoke-virtual {v5, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_c3 if-lt v1, v13, :cond_f4 if-gt v1, v7, :cond_f4 mul-int/lit8 v2, v2, 0xa add-int/lit8 v1, v1, -0x30 add-int/2addr v2, v1 move v1, v15 .line 3349 :goto_cd iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v11, 0x1 add-int/2addr v5, v11 .line 3350 iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v11, :cond_d9 const/16 v5, 0x1a goto :goto_df :cond_d9 iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3352 invoke-virtual {v11, v5}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_df if-lt v5, v13, :cond_ed if-gt v5, v7, :cond_ed mul-int/lit8 v2, v2, 0xa add-int/lit8 v5, v5, -0x30 add-int/2addr v2, v5 mul-int/lit8 v1, v1, 0xa move/from16 v11, v17 goto :goto_cd :cond_ed move/from16 v19, v2 move v2, v1 move v1, v5 move/from16 v5, v19 goto :goto_fc .line 3363 :cond_f4 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3364 move-object v1, v3 check-cast v1, [[F return-object v3 :cond_fa move v5, v2 const/4 v2, 0x1 :goto_fc const/16 v11, 0x65 if-eq v1, v11, :cond_107 const/16 v11, 0x45 if-ne v1, v11, :cond_105 goto :goto_107 :cond_105 const/4 v11, 0x0 goto :goto_108 :cond_107 :goto_107 const/4 v11, 0x1 :goto_108 if-eqz v11, :cond_154 .line 3371 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v18, v17, 0x1 add-int v1, v1, v17 .line 3372 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_117 const/16 v1, 0x1a goto :goto_11d :cond_117 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3374 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_11d const/16 v3, 0x2b if-eq v1, v3, :cond_127 if-ne v1, v6, :cond_124 goto :goto_127 :cond_124 move/from16 v17, v18 goto :goto_13a .line 3377 :cond_127 :goto_127 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v18 .line 3378 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_134 const/16 v1, 0x1a goto :goto_13a :cond_134 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3380 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_13a if-lt v1, v13, :cond_154 if-gt v1, v7, :cond_154 .line 3385 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v3, v17, 0x1 add-int v1, v1, v17 .line 3386 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v6, :cond_14b const/16 v1, 0x1a goto :goto_151 :cond_14b iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3388 invoke-virtual {v6, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_151 move/from16 v17, v3 goto :goto_13a .line 3395 :cond_154 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int v3, v3, v17 sub-int/2addr v3, v14 const/4 v6, 0x1 sub-int/2addr v3, v6 if-nez v11, :cond_166 if-ge v3, v15, :cond_166 int-to-float v3, v5 int-to-float v2, v2 div-float/2addr v3, v2 if-eqz v16, :cond_16e neg-float v3, v3 goto :goto_16e .line 3403 :cond_166 invoke-direct {v0, v14, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v2 .line 3404 invoke-static {v2}, Ljava/lang/Float;->parseFloat(Ljava/lang/String;)F move-result v3 .line 3407 :cond_16e :goto_16e array-length v2, v4 const/4 v5, 0x3 if-lt v12, v2, :cond_17d .line 3408 array-length v2, v4 mul-int/2addr v2, v5 div-int/lit8 v2, v2, 0x2 new-array v2, v2, [F const/4 v6, 0x0 .line 3409 invoke-static {v4, v6, v2, v6, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v4, v2 :cond_17d add-int/lit8 v2, v12, 0x1 .line 3412 aput v3, v4, v12 const/16 v3, 0x2c if-ne v1, v3, :cond_19c .line 3416 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v3, v17, 0x1 add-int v1, v1, v17 .line 3417 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v5, :cond_192 const/16 v1, 0x1a goto :goto_198 :cond_192 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3419 invoke-virtual {v5, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_198 move/from16 v17, v3 goto/16 :goto_293 :cond_19c const/16 v6, 0x5d if-ne v1, v6, :cond_293 .line 3422 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v7, v17, 0x1 add-int v1, v1, v17 .line 3423 iget v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v11, :cond_1ad const/16 v1, 0x1a goto :goto_1b3 :cond_1ad iget-object v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3425 invoke-virtual {v11, v1}, Ljava/lang/String;->charAt(I)C move-result v1 .line 3435 :goto_1b3 array-length v11, v4 if-eq v2, v11, :cond_1be .line 3436 new-array v11, v2, [F const/4 v12, 0x0 .line 3437 invoke-static {v4, v12, v11, v12, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v4, v11 goto :goto_1bf :cond_1be const/4 v12, 0x0 .line 3441 :goto_1bf array-length v11, v9 if-lt v10, v11, :cond_1cb .line 3442 array-length v9, v9 mul-int/2addr v9, v5 div-int/lit8 v9, v9, 0x2 new-array v9, v9, [[F .line 3443 invoke-static {v4, v12, v9, v12, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V :cond_1cb add-int/lit8 v2, v10, 0x1 .line 3446 aput-object v4, v9, v10 if-ne v1, v3, :cond_1ec .line 3450 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int/2addr v1, v7 .line 3451 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v3, :cond_1dd const/16 v1, 0x1a goto :goto_1e3 :cond_1dd iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3453 invoke-virtual {v3, v1}, Ljava/lang/String;->charAt(I)C move-result v1 :goto_1e3 move v4, v1 const/16 v3, 0x1a const/16 v5, 0x10 const/4 v6, 0x0 const/4 v11, 0x0 goto/16 :goto_28d :cond_1ec if-ne v1, v6, :cond_284 .line 3456 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v4, v17, 0x2 add-int/2addr v1, v7 .line 3457 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v7, :cond_1fa const/16 v1, 0x1a goto :goto_200 :cond_1fa iget-object v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 3459 invoke-virtual {v7, v1}, Ljava/lang/String;->charAt(I)C move-result v1 .line 3466 :goto_200 array-length v7, v9 if-eq v2, v7, :cond_20a .line 3467 new-array v7, v2, [[F const/4 v11, 0x0 .line 3468 invoke-static {v9, v11, v7, v11, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v9, v7 :cond_20a if-ne v1, v3, :cond_21f .line 3473 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v2, 0x1 add-int/lit8 v17, v17, 0x1 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3474 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 3475 iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/16 v5, 0x10 .line 3476 iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v9 :cond_21f const/16 v5, 0x10 const/16 v2, 0x7d if-ne v1, v2, :cond_27d .line 3481 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v4 invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 if-ne v1, v3, :cond_23c .line 3483 iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3484 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3485 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_272 :cond_23c if-ne v1, v6, :cond_24e const/16 v1, 0xf .line 3487 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3488 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3489 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_272 :cond_24e if-ne v1, v2, :cond_260 const/16 v1, 0xd .line 3491 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3492 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 3493 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_272 :cond_260 const/16 v3, 0x1a if-ne v1, v3, :cond_276 .line 3495 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v17, v17, 0x2 add-int v1, v1, v17 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v1, 0x14 .line 3496 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 3497 iput-char v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_272 const/4 v1, 0x4 .line 3502 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v9 .line 3499 :cond_276 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/4 v6, 0x0 .line 3500 move-object v3, v6 check-cast v3, [[F return-object v6 :cond_27d const/4 v6, 0x0 .line 3504 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3505 move-object v3, v6 check-cast v3, [[F return-object v6 :cond_284 const/16 v3, 0x1a const/16 v5, 0x10 const/4 v6, 0x0 const/4 v11, 0x0 move v4, v1 move/from16 v17, v7 :goto_28d move v10, v2 move-object v3, v6 move v1, v11 move/from16 v2, v17 goto :goto_2ab :cond_293 :goto_293 const/16 v3, 0x1a const/16 v5, 0x10 const/4 v6, 0x0 const/4 v11, 0x0 move v12, v2 move-object v3, v6 const/16 v6, 0x5b move v2, v1 move v1, v11 move/from16 v11, v17 goto/16 :goto_5b :cond_2a3 move-object v6, v3 .line 3429 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 3430 move-object v3, v6 check-cast v3, [[F return-object v6 :cond_2aa move-object v6, v3 :goto_2ab const/16 v6, 0x5b goto/16 :goto_44 .end method .method public scanFieldInt(J)I .registers 15 const/4 v0, 0x0 .line 2132 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2134 invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result p1 if-nez p1, :cond_a return v0 .line 2140 :cond_a iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v1, p1, 0x1 add-int/2addr p2, p1 .line 2141 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const/16 v3, 0x1a if-lt p2, v2, :cond_17 move p2, v3 goto :goto_1d :cond_17 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2143 invoke-virtual {v2, p2}, Ljava/lang/String;->charAt(I)C move-result p2 :goto_1d const/16 v2, 0x22 const/4 v4, 0x1 if-ne p2, v2, :cond_24 move v5, v4 goto :goto_25 :cond_24 move v5, v0 :goto_25 if-eqz v5, :cond_3a .line 2149 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p1, p1, 0x2 add-int/2addr p2, v1 .line 2150 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p2, v1, :cond_32 move p2, v3 goto :goto_38 :cond_32 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2152 invoke-virtual {v1, p2}, Ljava/lang/String;->charAt(I)C move-result p2 :goto_38 move v1, p1 move v5, v4 :cond_3a const/16 p1, 0x2d if-ne p2, p1, :cond_40 move p1, v4 goto :goto_41 :cond_40 move p1, v0 :goto_41 if-eqz p1, :cond_55 .line 2157 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, v1, 0x1 add-int/2addr p2, v1 .line 2158 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p2, v1, :cond_4e move p2, v3 goto :goto_54 :cond_4e iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2160 invoke-virtual {v1, p2}, Ljava/lang/String;->charAt(I)C move-result p2 :goto_54 move v1, v6 :cond_55 const/16 v6, 0x30 const/4 v7, -0x1 if-lt p2, v6, :cond_163 const/16 v8, 0x39 if-gt p2, v8, :cond_163 sub-int/2addr p2, v6 .line 2168 :goto_5f iget v9, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v10, v1, 0x1 add-int/2addr v9, v1 .line 2169 iget v11, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v9, v11, :cond_6a move v9, v3 goto :goto_70 :cond_6a iget-object v11, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2171 invoke-virtual {v11, v9}, Ljava/lang/String;->charAt(I)C move-result v9 :goto_70 if-lt v9, v6, :cond_7b if-gt v9, v8, :cond_7b mul-int/lit8 p2, p2, 0xa add-int/lit8 v9, v9, -0x30 add-int/2addr p2, v9 move v1, v10 goto :goto_5f :cond_7b const/16 v6, 0x2e if-ne v9, v6, :cond_82 .line 2175 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 :cond_82 if-ne v9, v2, :cond_9c if-nez v5, :cond_89 .line 2179 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 .line 2182 :cond_89 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v1, v1, 0x2 add-int/2addr v2, v10 .line 2183 iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v5, :cond_94 move v9, v3 goto :goto_9b :cond_94 iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2185 invoke-virtual {v5, v2}, Ljava/lang/String;->charAt(I)C move-result v2 move v9, v2 :goto_9b move v10, v1 :cond_9c if-gez p2, :cond_a1 .line 2192 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 :cond_a1 :goto_a1 const/16 v1, 0x10 const/16 v2, 0x2c if-ne v9, v2, :cond_c4 .line 2202 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v10, v4 add-int/2addr v0, v10 add-int/2addr v0, v4 .line 2205 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2206 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v2, :cond_b3 goto :goto_b9 :cond_b3 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2208 invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_b9 iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 v0, 0x3 .line 2210 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2211 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-eqz p1, :cond_c3 neg-int p2, p2 :cond_c3 return p2 :cond_c4 const/16 v5, 0xd const/16 v6, 0x20 if-gt v9, v6, :cond_f2 if-eq v9, v6, :cond_de const/16 v6, 0xa if-eq v9, v6, :cond_de if-eq v9, v5, :cond_de const/16 v6, 0x9 if-eq v9, v6, :cond_de const/16 v6, 0xc if-eq v9, v6, :cond_de const/16 v6, 0x8 if-ne v9, v6, :cond_f2 .line 2220 :cond_de iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v10, 0x1 add-int/2addr v1, v10 .line 2221 iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, v5, :cond_e9 move v9, v3 goto :goto_f0 :cond_e9 iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2223 invoke-virtual {v5, v1}, Ljava/lang/String;->charAt(I)C move-result v1 move v9, v1 :goto_f0 move v10, v2 goto :goto_a1 :cond_f2 const/16 v6, 0x7d if-ne v9, v6, :cond_160 .line 2230 iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v8, v10 invoke-virtual {p0, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v8 if-ne v8, v2, :cond_115 .line 2232 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2233 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v10 add-int/2addr v0, v4 .line 2236 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2237 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v1, :cond_10c goto :goto_112 :cond_10c iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2239 invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_112 iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_156 :cond_115 const/16 v1, 0x5d if-ne v8, v1, :cond_131 const/16 v0, 0xf .line 2242 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2243 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v10 add-int/2addr v0, v4 .line 2246 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2247 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v1, :cond_128 goto :goto_12e :cond_128 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2249 invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_12e iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_156 :cond_131 if-ne v8, v6, :cond_149 .line 2252 iput v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2253 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v10 add-int/2addr v0, v4 .line 2256 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2257 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v1, :cond_140 goto :goto_146 :cond_140 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2259 invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_146 iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_156 :cond_149 if-ne v8, v3, :cond_15d const/16 v0, 0x14 .line 2262 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2263 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v10 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2264 iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_156 const/4 v0, 0x4 .line 2269 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I if-eqz p1, :cond_15c neg-int p2, p2 :cond_15c return p2 .line 2266 :cond_15d iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 .line 2271 :cond_160 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 .line 2196 :cond_163 iput v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return v0 .end method .method public final scanFieldIntArray(J)[I .registers 21 move-object/from16 v0, p0 const/4 v1, 0x0 .line 2279 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2281 invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result v2 const/4 v3, 0x0 if-nez v2, :cond_d return-object v3 .line 2286 :cond_d iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v2, 0x1 add-int/2addr v4, v2 .line 2287 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v6, :cond_19 const/16 v4, 0x1a goto :goto_1f :cond_19 iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2289 invoke-virtual {v6, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_1f const/16 v6, 0x5b const/4 v8, -0x1 if-eq v4, v6, :cond_27 .line 2291 iput v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v3 .line 2295 :cond_27 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, v2, 0x2 add-int/2addr v4, v5 .line 2296 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v5, :cond_33 const/16 v4, 0x1a goto :goto_39 :cond_33 iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2298 invoke-virtual {v5, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_39 const/16 v5, 0x10 .line 2301 new-array v9, v5, [I const/16 v10, 0x2c const/4 v11, 0x3 const/16 v12, 0x5d const/4 v13, 0x1 if-ne v4, v12, :cond_59 .line 2306 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v11 add-int/2addr v4, v6 .line 2307 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v6, :cond_50 const/16 v4, 0x1a goto :goto_56 :cond_50 iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2309 invoke-virtual {v6, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_56 move v3, v1 goto/16 :goto_e4 :cond_59 move v2, v1 :goto_5a const/16 v14, 0x2d if-ne v4, v14, :cond_73 .line 2315 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v14, v6, 0x1 add-int/2addr v4, v6 .line 2316 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, v6, :cond_6a const/16 v4, 0x1a goto :goto_70 :cond_6a iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2318 invoke-virtual {v6, v4}, Ljava/lang/String;->charAt(I)C move-result v4 :goto_70 move v6, v14 move v14, v13 goto :goto_74 :cond_73 move v14, v1 :goto_74 const/16 v15, 0x30 if-lt v4, v15, :cond_15f const/16 v3, 0x39 if-gt v4, v3, :cond_15c add-int/lit8 v4, v4, -0x30 .line 2325 :goto_7e iget v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v16, v6, 0x1 add-int/2addr v8, v6 .line 2326 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v8, v7, :cond_8a const/16 v7, 0x1a goto :goto_90 :cond_8a iget-object v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2328 invoke-virtual {v7, v8}, Ljava/lang/String;->charAt(I)C move-result v7 :goto_90 if-lt v7, v15, :cond_9c if-gt v7, v3, :cond_9c mul-int/lit8 v4, v4, 0xa add-int/lit8 v7, v7, -0x30 add-int/2addr v4, v7 move/from16 v6, v16 goto :goto_7e .line 2337 :cond_9c array-length v3, v9 if-lt v2, v3, :cond_a9 .line 2338 array-length v3, v9 mul-int/2addr v3, v11 div-int/lit8 v3, v3, 0x2 new-array v3, v3, [I .line 2339 invoke-static {v9, v1, v3, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v9, v3 :cond_a9 add-int/lit8 v3, v2, 0x1 if-eqz v14, :cond_ae neg-int v4, v4 .line 2342 :cond_ae aput v4, v9, v2 if-ne v7, v10, :cond_ca .line 2346 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, v6, 0x2 add-int v2, v2, v16 .line 2347 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v4, :cond_bf const/16 v2, 0x1a goto :goto_c5 :cond_bf iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2349 invoke-virtual {v4, v2}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_c5 move v7, v2 move/from16 v16, v6 goto/16 :goto_150 :cond_ca if-ne v7, v12, :cond_150 .line 2352 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v4, v6, 0x2 add-int v2, v2, v16 .line 2353 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v6, :cond_d9 const/16 v2, 0x1a goto :goto_df :cond_d9 iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2355 invoke-virtual {v6, v2}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_df move/from16 v17, v4 move v4, v2 move/from16 v2, v17 .line 2366 :goto_e4 array-length v6, v9 if-eq v3, v6, :cond_ed .line 2367 new-array v6, v3, [I .line 2368 invoke-static {v9, v1, v6, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v9, v6 :cond_ed if-ne v4, v10, :cond_fd .line 2373 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v2, v13 add-int/2addr v1, v2 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2374 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 2375 iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2376 iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v9 :cond_fd const/16 v1, 0x7d if-ne v4, v1, :cond_14b .line 2381 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v2 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 if-ne v3, v10, :cond_115 .line 2383 iput v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2384 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v2 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2385 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_142 :cond_115 if-ne v3, v12, :cond_124 const/16 v1, 0xf .line 2387 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2388 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v2 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2389 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_142 :cond_124 if-ne v3, v1, :cond_133 const/16 v1, 0xd .line 2391 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2392 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v2 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2393 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_142 :cond_133 const/16 v4, 0x1a if-ne v3, v4, :cond_146 .line 2395 iget v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v2 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v1, 0x14 .line 2396 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2397 iput-char v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_142 const/4 v1, 0x4 .line 2402 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v9 :cond_146 const/4 v2, -0x1 .line 2399 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I const/4 v6, 0x0 return-object v6 :cond_14b const/4 v2, -0x1 const/4 v6, 0x0 .line 2404 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v6 :cond_150 :goto_150 const/4 v2, -0x1 const/16 v4, 0x1a const/4 v6, 0x0 move v8, v2 move v2, v3 move-object v3, v6 move v4, v7 move/from16 v6, v16 goto/16 :goto_5a :cond_15c move v2, v8 const/4 v6, 0x0 goto :goto_161 :cond_15f move-object v6, v3 move v2, v8 .line 2359 :goto_161 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v6 .end method .method public scanFieldLong(J)J .registers 21 move-object/from16 v0, p0 const/4 v1, 0x0 .line 2412 iput v1, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2414 invoke-direct/range {p0 .. p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result v2 const-wide/16 v3, 0x0 if-nez v2, :cond_e return-wide v3 .line 2422 :cond_e iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, v2, 0x1 add-int/2addr v5, v2 .line 2423 iget v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v7, :cond_1a const/16 v5, 0x1a goto :goto_20 :cond_1a iget-object v7, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2425 invoke-virtual {v7, v5}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_20 const/16 v7, 0x22 const/4 v9, 0x1 if-ne v5, v7, :cond_27 move v10, v9 goto :goto_28 :cond_27 move v10, v1 :goto_28 if-eqz v10, :cond_3d .line 2432 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr v5, v6 .line 2433 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v6, :cond_36 const/16 v5, 0x1a goto :goto_3c :cond_36 iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2435 invoke-virtual {v6, v5}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_3c move v6, v2 :cond_3d const/16 v2, 0x2d if-ne v5, v2, :cond_42 move v1, v9 :cond_42 if-eqz v1, :cond_58 .line 2440 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v6, 0x1 add-int/2addr v2, v6 .line 2441 iget v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v6, :cond_50 const/16 v2, 0x1a goto :goto_56 :cond_50 iget-object v6, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2443 invoke-virtual {v6, v2}, Ljava/lang/String;->charAt(I)C move-result v2 :goto_56 move v6, v5 move v5, v2 :cond_58 const/16 v2, 0x30 const/4 v11, -0x1 if-lt v5, v2, :cond_14c const/16 v12, 0x39 if-gt v5, v12, :cond_14c sub-int/2addr v5, v2 int-to-long v13, v5 .line 2452 :goto_63 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v15, v6, 0x1 add-int/2addr v5, v6 .line 2453 iget v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v5, v8, :cond_6f const/16 v5, 0x1a goto :goto_75 :cond_6f iget-object v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2455 invoke-virtual {v8, v5}, Ljava/lang/String;->charAt(I)C move-result v5 :goto_75 if-lt v5, v2, :cond_83 if-gt v5, v12, :cond_83 const-wide/16 v16, 0xa mul-long v13, v13, v16 add-int/lit8 v5, v5, -0x30 int-to-long v5, v5 add-long/2addr v13, v5 move v6, v15 goto :goto_63 :cond_83 const/16 v2, 0x2e if-ne v5, v2, :cond_8a .line 2460 iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 :cond_8a if-ne v5, v7, :cond_a5 if-nez v10, :cond_91 .line 2464 iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 .line 2467 :cond_91 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v6, v6, 0x2 add-int/2addr v2, v15 .line 2468 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v5, :cond_9d const/16 v5, 0x1a goto :goto_a4 :cond_9d iget-object v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2470 invoke-virtual {v5, v2}, Ljava/lang/String;->charAt(I)C move-result v2 move v5, v2 :goto_a4 move v15, v6 :cond_a5 cmp-long v2, v13, v3 if-gez v2, :cond_ac .line 2477 iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 :cond_ac const/16 v2, 0x10 const/16 v6, 0x2c if-ne v5, v6, :cond_d1 .line 2486 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v15, v9 add-int/2addr v3, v15 add-int/2addr v3, v9 .line 2489 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2490 iget v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v4, :cond_c0 const/16 v8, 0x1a goto :goto_c6 :cond_c0 iget-object v4, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2492 invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C move-result v8 :goto_c6 iput-char v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 v3, 0x3 .line 2494 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2495 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I if-eqz v1, :cond_d0 neg-long v13, v13 :cond_d0 return-wide v13 :cond_d1 const/16 v7, 0x7d if-ne v5, v7, :cond_149 .line 2500 iget v5, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, v15 invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v5 if-ne v5, v6, :cond_f6 .line 2502 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2503 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v15 add-int/2addr v2, v9 .line 2506 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2507 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v3, :cond_ed const/16 v8, 0x1a goto :goto_f3 :cond_ed iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2509 invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C move-result v8 :goto_f3 iput-char v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_13f :cond_f6 const/16 v2, 0x5d if-ne v5, v2, :cond_114 const/16 v2, 0xf .line 2512 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2513 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v15 add-int/2addr v2, v9 .line 2516 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2517 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v3, :cond_10b const/16 v8, 0x1a goto :goto_111 :cond_10b iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2519 invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C move-result v8 :goto_111 iput-char v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_13f :cond_114 if-ne v5, v7, :cond_130 const/16 v2, 0xd .line 2522 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2523 iget v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v15 add-int/2addr v2, v9 .line 2526 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2527 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, v3, :cond_127 const/16 v8, 0x1a goto :goto_12d :cond_127 iget-object v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2529 invoke-virtual {v3, v2}, Ljava/lang/String;->charAt(I)C move-result v8 :goto_12d iput-char v8, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_13f :cond_130 const/16 v2, 0x1a if-ne v5, v2, :cond_146 const/16 v3, 0x14 .line 2532 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2533 iget v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v15 iput v3, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2534 iput-char v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_13f const/4 v2, 0x4 .line 2539 iput v2, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I if-eqz v1, :cond_145 neg-long v13, v13 :cond_145 return-wide v13 .line 2536 :cond_146 iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 .line 2541 :cond_149 iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 .line 2481 :cond_14c iput v11, v0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v3 .end method .method public scanFieldString(J)Ljava/lang/String; .registers 12 const/4 v0, 0x0 .line 2549 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2551 invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result p1 if-nez p1, :cond_b const/4 p1, 0x0 return-object p1 .line 2558 :cond_b iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v1, p1, 0x1 add-int/2addr p2, p1 .line 2559 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const-string v2, "unclosed str, " if-ge p2, p1, :cond_126 .line 2562 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C move-result p1 const/16 p2, 0x22 const/4 v3, -0x1 if-eq p1, p2, :cond_26 .line 2567 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2569 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String; return-object p1 .line 2574 :cond_26 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, v1 .line 2575 iget-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v4, p2, p1}, Ljava/lang/String;->indexOf(II)I move-result v4 if-eq v4, v3, :cond_10f .line 2581 sget-boolean v2, Lcom/alibaba/fastjson/parser/JSONLexer;->V6:Z if-eqz v2, :cond_3c .line 2582 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v2, p1, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v2 goto :goto_4b :cond_3c sub-int v2, v4, p1 .line 2585 iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, v1 invoke-virtual {p0, v5, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C move-result-object v5 .line 2586 new-instance v6, Ljava/lang/String; invoke-direct {v6, v5, v0, v2}, Ljava/lang/String;->([CII)V move-object v2, v6 :goto_4b const/16 v5, 0x5c .line 2589 invoke-virtual {v2, v5}, Ljava/lang/String;->indexOf(I)I move-result v6 if-eq v6, v3, :cond_94 move v2, v0 :goto_54 add-int/lit8 v6, v4, -0x1 move v7, v0 :goto_57 if-ltz v6, :cond_67 .line 2593 iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v8, v6}, Ljava/lang/String;->charAt(I)C move-result v8 if-ne v8, v5, :cond_67 add-int/lit8 v7, v7, 0x1 add-int/lit8 v6, v6, -0x1 const/4 v2, 0x1 goto :goto_57 .line 2600 :cond_67 rem-int/lit8 v7, v7, 0x2 if-nez v7, :cond_8b sub-int p1, v4, p1 .line 2607 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p2, v1 invoke-virtual {p0, p2, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C move-result-object p2 if-eqz v2, :cond_7b .line 2609 invoke-static {p2, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String; move-result-object v2 goto :goto_94 .line 2611 :cond_7b new-instance v2, Ljava/lang/String; invoke-direct {v2, p2, v0, p1}, Ljava/lang/String;->([CII)V .line 2612 invoke-virtual {v2, v5}, Ljava/lang/String;->indexOf(I)I move-result v0 if-eq v0, v3, :cond_94 .line 2613 invoke-static {p2, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String; move-result-object v2 goto :goto_94 .line 2603 :cond_8b iget-object v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int/lit8 v4, v4, 0x1 invoke-virtual {v6, p2, v4}, Ljava/lang/String;->indexOf(II)I move-result v4 goto :goto_54 :cond_94 :goto_94 add-int/lit8 p1, v4, 0x1 .line 2622 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const/16 v0, 0x1a if-lt p1, p2, :cond_9e move p1, v0 goto :goto_a4 :cond_9e iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2624 invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_a4 const/16 p2, 0x10 const/16 v1, 0x2c if-ne p1, v1, :cond_c1 add-int/lit8 v4, v4, 0x2 .line 2631 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2632 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, p1, :cond_b3 goto :goto_b9 :cond_b3 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2634 invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_b9 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 p1, 0x3 .line 2636 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2637 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v2 :cond_c1 const/16 v5, 0x7d if-ne p1, v5, :cond_10a add-int/lit8 v4, v4, 0x2 .line 2644 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v4, p1, :cond_cd move p1, v0 goto :goto_d3 :cond_cd iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 2646 invoke-virtual {p1, v4}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_d3 if-ne p1, v1, :cond_dd .line 2649 iput p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2650 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2651 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_101 :cond_dd const/16 p2, 0x5d if-ne p1, p2, :cond_eb const/16 p1, 0xf .line 2653 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2654 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2655 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_101 :cond_eb if-ne p1, v5, :cond_f7 const/16 p1, 0xd .line 2657 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2658 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2659 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_101 :cond_f7 if-ne p1, v0, :cond_105 const/16 p1, 0x14 .line 2661 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 2662 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 2663 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_101 const/4 p1, 0x4 .line 2668 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-object v2 .line 2665 :cond_105 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2666 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String; return-object p1 .line 2670 :cond_10a iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 2671 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->stringDefaultValue:Ljava/lang/String; return-object p1 .line 2577 :cond_10f new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v0 invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .line 2560 :cond_126 new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v0 invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .end method .method public scanFieldSymbol(J)J .registers 13 const/4 v0, 0x0 .line 4073 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I .line 4075 invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/parser/JSONLexer;->matchFieldHash(J)I move-result p1 const-wide/16 v0, 0x0 if-nez p1, :cond_c return-wide v0 .line 4080 :cond_c iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, p1, 0x1 add-int/2addr p2, p1 .line 4081 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I const/16 v3, 0x1a if-lt p2, p1, :cond_19 move p1, v3 goto :goto_1f :cond_19 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 4083 invoke-virtual {p1, p2}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_1f const/16 p2, 0x22 const/4 v4, -0x1 if-eq p1, p2, :cond_27 .line 4086 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v0 :cond_27 const-wide v5, -0x340d631b7bdddcdbL # -7.302176725335867E57 .line 4093 :goto_2c iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v7, v2, 0x1 add-int/2addr p1, v2 .line 4094 iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v8, :cond_37 move p1, v3 goto :goto_3d :cond_37 iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 4096 invoke-virtual {v8, p1}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_3d if-ne p1, p2, :cond_cf .line 4099 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 p2, v2, 0x2 add-int/2addr p1, v7 .line 4100 iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, v7, :cond_4a move p1, v3 goto :goto_50 :cond_4a iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 4102 invoke-virtual {v7, p1}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_50 const/16 v7, 0x2c if-ne p1, v7, :cond_6e .line 4116 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x1 add-int/2addr p1, v2 add-int/lit8 p1, p1, 0x1 .line 4119 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4120 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, p2, :cond_62 goto :goto_68 :cond_62 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 4122 invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_68 iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 p1, 0x3 .line 4124 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v5 :cond_6e const/16 v8, 0x7d if-ne p1, v8, :cond_cc .line 4129 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr p1, p2 .line 4130 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt p1, p2, :cond_7b move p1, v3 goto :goto_81 :cond_7b iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 4132 invoke-virtual {p2, p1}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_81 if-ne p1, v7, :cond_92 const/16 p1, 0x10 .line 4134 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 4135 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr p1, v2 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4136 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_c5 :cond_92 const/16 p2, 0x5d if-ne p1, p2, :cond_a5 const/16 p1, 0xf .line 4138 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 4139 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr p1, v2 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4140 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_c5 :cond_a5 if-ne p1, v8, :cond_b6 const/16 p1, 0xd .line 4142 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 4143 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr p1, v2 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4144 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_c5 :cond_b6 if-ne p1, v3, :cond_c9 const/16 p1, 0x14 .line 4146 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 4147 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x2 add-int/2addr p1, v2 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 4148 iput-char v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C :goto_c5 const/4 p1, 0x4 .line 4153 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v5 .line 4150 :cond_c9 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v0 .line 4155 :cond_cc iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v0 :cond_cf int-to-long v8, p1 xor-long/2addr v5, v8 const-wide v8, 0x100000001b3L mul-long/2addr v5, v8 const/16 v2, 0x5c if-ne p1, v2, :cond_de .line 4110 iput v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->matchStat:I return-wide v0 :cond_de move v2, v7 goto/16 :goto_2c .end method .method public scanISO8601DateIfMatch(Z)Z .registers 4 .line 4163 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v0, v1 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanISO8601DateIfMatch(ZI)Z move-result p1 return p1 .end method .method public scanISO8601DateIfMatch(ZI)Z .registers 38 move-object/from16 v9, p0 move/from16 v10, p2 const/16 v0, 0x2f const/16 v11, 0xd const/16 v12, 0x39 const/4 v13, 0x6 const/4 v14, 0x3 const/4 v15, 0x2 const/4 v8, 0x5 const/16 v16, 0x1 const/16 v7, 0x30 const/4 v6, 0x0 if-nez p1, :cond_a9 if-le v10, v11, :cond_a9 .line 4168 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 .line 4169 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0x1 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 .line 4170 iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v15 invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 .line 4171 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v4, v14 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v4 .line 4172 iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v5, 0x4 invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v5 .line 4173 iget v11, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v11, v8 invoke-virtual {v9, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v11 .line 4175 iget v14, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v14, v10 add-int/lit8 v14, v14, -0x1 invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v14 .line 4176 iget v8, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v8, v10 sub-int/2addr v8, v15 invoke-virtual {v9, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v8 if-ne v1, v0, :cond_a9 const/16 v1, 0x44 if-ne v2, v1, :cond_a9 const/16 v1, 0x61 if-ne v3, v1, :cond_a9 const/16 v1, 0x74 if-ne v4, v1, :cond_a9 const/16 v1, 0x65 if-ne v5, v1, :cond_a9 const/16 v1, 0x28 if-ne v11, v1, :cond_a9 if-ne v14, v0, :cond_a9 const/16 v1, 0x29 if-ne v8, v1, :cond_a9 const/4 v0, -0x1 move v1, v13 :goto_71 if-ge v1, v10, :cond_88 .line 4181 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v1 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 const/16 v3, 0x2b if-ne v2, v3, :cond_80 move v0, v1 goto :goto_85 :cond_80 if-lt v2, v7, :cond_88 if-le v2, v12, :cond_85 goto :goto_88 :cond_85 :goto_85 add-int/lit8 v1, v1, 0x1 goto :goto_71 :cond_88 :goto_88 const/4 v1, -0x1 if-ne v0, v1, :cond_8c return v6 .line 4191 :cond_8c iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v13 sub-int/2addr v0, v1 .line 4192 invoke-direct {v9, v1, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v0 .line 4193 invoke-static {v0}, Ljava/lang/Long;->parseLong(Ljava/lang/String;)J move-result-wide v0 .line 4195 iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->timeZone:Ljava/util/TimeZone; iget-object v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->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/JSONLexer;->calendar:Ljava/util/Calendar; .line 4196 invoke-virtual {v2, v0, v1}, Ljava/util/Calendar;->setTimeInMillis(J)V const/4 v0, 0x5 .line 4198 iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return v16 :cond_a9 const/16 v11, 0x54 const/16 v14, 0x10 const/16 v4, 0x8 const/16 v3, 0x9 const/16 v2, 0xe const/16 v1, 0x2d const/16 v20, 0xa if-eq v10, v4, :cond_4ba if-eq v10, v2, :cond_4ba if-ne v10, v14, :cond_d9 .line 4204 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v2, v2, 0xa .line 4206 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 if-eq v2, v11, :cond_cc const/16 v5, 0x20 if-eq v2, v5, :cond_cc goto :goto_d9 :cond_cc :goto_cc move v8, v1 move/from16 v21, v3 move v7, v4 move v12, v6 move v13, v14 const/4 v11, 0x5 const/16 v14, 0xe const/16 v15, 0xb goto/16 :goto_4c4 :cond_d9 :goto_d9 const/16 v2, 0x11 if-ne v10, v2, :cond_e7 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v13 .line 4207 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 if-eq v2, v1, :cond_e7 goto :goto_cc :cond_e7 if-ge v10, v3, :cond_ea return v6 .line 4327 :cond_ea iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 .line 4328 iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v5, 0x1 invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v5 .line 4329 iget v14, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v14, v15 invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v14 .line 4330 iget v7, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v18, 0x3 add-int/lit8 v7, v7, 0x3 invoke-virtual {v9, v7}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v7 .line 4331 iget v8, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v8, v8, 0x4 invoke-virtual {v9, v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v8 .line 4332 iget v12, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v19, 0x5 add-int/lit8 v12, v12, 0x5 invoke-virtual {v9, v12}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v12 .line 4333 iget v15, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v15, v13 invoke-virtual {v9, v15}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v15 .line 4334 iget v13, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v13, v13, 0x7 invoke-virtual {v9, v13}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v13 .line 4335 iget v11, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v11, v4 invoke-virtual {v9, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v11 .line 4336 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v4, v3 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v4 const/16 v6, 0x65e5 if-ne v8, v1, :cond_13e if-eq v13, v1, :cond_142 :cond_13e if-ne v8, v0, :cond_14f if-ne v13, v0, :cond_14f :cond_142 move/from16 v13, v20 const v8, 0xc77c :goto_147 move/from16 v34, v11 move v11, v4 move v4, v7 move/from16 v7, v34 goto/16 :goto_1f3 :cond_14f if-ne v8, v1, :cond_170 if-ne v15, v1, :cond_170 const/16 v0, 0x20 if-ne v11, v0, :cond_165 move v4, v7 move v15, v12 move v11, v13 const/16 v7, 0x30 const v8, 0xc77c const/16 v12, 0x30 const/16 v13, 0x8 goto/16 :goto_1f3 :cond_165 move v4, v7 move v15, v12 move v7, v13 const v8, 0xc77c const/16 v12, 0x30 move v13, v3 goto/16 :goto_1f3 :cond_170 const/16 v0, 0x2e if-ne v14, v0, :cond_178 const/16 v0, 0x2e if-eq v12, v0, :cond_17c :cond_178 if-ne v14, v1, :cond_18a if-ne v12, v1, :cond_18a :cond_17c move v12, v7 move v14, v11 move v7, v2 move v11, v5 move v5, v13 move v2, v15 move/from16 v13, v20 move v15, v8 const v8, 0xc77c goto/16 :goto_1f3 :cond_18a const/16 v0, 0x5e74 if-eq v8, v0, :cond_196 const v0, 0xb144 if-ne v8, v0, :cond_194 goto :goto_196 :cond_194 const/4 v0, 0x0 return v0 :cond_196 :goto_196 const/16 v0, 0x6708 if-eq v13, v0, :cond_1cb const v0, 0xc6d4 if-ne v13, v0, :cond_1a0 goto :goto_1cb :cond_1a0 const/16 v0, 0x6708 if-eq v15, v0, :cond_1ac const v0, 0xc6d4 if-ne v15, v0, :cond_1aa goto :goto_1ac :cond_1aa const/4 v0, 0x0 return v0 :cond_1ac :goto_1ac const/4 v0, 0x0 const v8, 0xc77c if-eq v11, v6, :cond_1c1 if-ne v11, v8, :cond_1b5 goto :goto_1c1 :cond_1b5 if-eq v4, v6, :cond_1bb if-ne v4, v8, :cond_1ba goto :goto_1bb :cond_1ba return v0 :cond_1bb :goto_1bb move v4, v7 move v15, v12 move v7, v13 move/from16 v13, v20 goto :goto_1c8 :cond_1c1 :goto_1c1 move v4, v7 move v15, v12 move v11, v13 move/from16 v13, v20 const/16 v7, 0x30 :goto_1c8 const/16 v12, 0x30 goto :goto_1f3 :cond_1cb :goto_1cb const v8, 0xc77c if-eq v4, v6, :cond_1ee if-ne v4, v8, :cond_1d3 goto :goto_1ee .line 4393 :cond_1d3 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0xa invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 if-eq v0, v6, :cond_1ea iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0xa invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 if-ne v0, v8, :cond_1e8 goto :goto_1ea :cond_1e8 const/4 v0, 0x0 return v0 :cond_1ea :goto_1ea const/16 v13, 0xb goto/16 :goto_147 :cond_1ee :goto_1ee move v4, v7 move/from16 v13, v20 const/16 v7, 0x30 :goto_1f3 move/from16 v26, v2 move/from16 v27, v5 move/from16 v28, v14 move/from16 v29, v4 move/from16 v30, v12 move/from16 v31, v15 move/from16 v32, v7 move/from16 v33, v11 .line 4420 invoke-static/range {v26 .. v33}, Lcom/alibaba/fastjson/parser/JSONLexer;->checkDate(CCCCCCII)Z move-result v0 if-nez v0, :cond_20c const/16 v25, 0x0 return v25 :cond_20c const/16 v25, 0x0 move-object/from16 v0, p0 move v10, v1 move v1, v2 move v2, v5 move/from16 v21, v3 move v3, v14 const/16 v14, 0x8 const/16 v14, 0x3a move v5, v12 move v14, v6 move/from16 v12, v25 move v6, v15 const/16 v15, 0x30 move v15, v8 move v8, v11 .line 4424 invoke-direct/range {v0 .. v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->setCalendar(CCCCCCCC)V .line 4426 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v7 const/16 v0, 0x54 if-eq v7, v0, :cond_2d4 const/16 v0, 0x20 if-ne v7, v0, :cond_239 if-nez p1, :cond_239 goto/16 :goto_2d4 :cond_239 const/16 v0, 0x22 if-eq v7, v0, :cond_2a9 const/16 v0, 0x1a if-eq v7, v0, :cond_2a9 if-eq v7, v14, :cond_2a9 if-ne v7, v15, :cond_246 goto :goto_2a9 :cond_246 const/16 v0, 0x2b if-eq v7, v0, :cond_24e if-ne v7, v10, :cond_24d goto :goto_24e :cond_24d return v12 .line 4442 :cond_24e :goto_24e iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I add-int/lit8 v1, v13, 0x6 if-ne v0, v1, :cond_2a8 .line 4443 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 const/4 v1, 0x3 add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 const/16 v1, 0x3a if-ne v0, v1, :cond_2a8 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 add-int/lit8 v0, v0, 0x4 .line 4444 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 const/16 v1, 0x30 if-ne v0, v1, :cond_2a8 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 const/4 v11, 0x5 add-int/2addr v0, v11 .line 4445 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 if-eq v0, v1, :cond_27a goto :goto_2a8 :cond_27a const/16 v5, 0x30 const/16 v6, 0x30 const/16 v1, 0x30 const/16 v2, 0x30 const/16 v3, 0x30 const/16 v4, 0x30 move-object/from16 v0, p0 .line 4449 invoke-virtual/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->setTime(CCCCCC)V .line 4450 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 v14, 0xe invoke-virtual {v0, v14, v12}, Ljava/util/Calendar;->set(II)V .line 4451 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 add-int/lit8 v0, v0, 0x1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v13 const/4 v2, 0x2 add-int/2addr v1, v2 invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 invoke-virtual {v9, v7, v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->setTimeZone(CCC)V return v16 :cond_2a8 :goto_2a8 return v12 :cond_2a9 :goto_2a9 const/4 v11, 0x5 const/16 v14, 0xe .line 4432 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 v15, 0xb invoke-virtual {v0, v15, v12}, Ljava/util/Calendar;->set(II)V .line 4433 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 v1, 0xc invoke-virtual {v0, v1, v12}, Ljava/util/Calendar;->set(II)V .line 4434 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 v1, 0xd invoke-virtual {v0, v1, v12}, Ljava/util/Calendar;->set(II)V .line 4435 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v0, v14, v12}, Ljava/util/Calendar;->set(II)V .line 4437 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 iput-char v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 4439 iput v11, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return v16 :cond_2d4 :goto_2d4 const/4 v11, 0x5 const/16 v14, 0xe const/16 v15, 0xb add-int/lit8 v7, v13, 0x9 move v8, v10 move/from16 v10, p2 if-ge v10, v7, :cond_2e1 return v12 .line 4459 :cond_2e1 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 const/4 v1, 0x3 add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 const/16 v1, 0x3a if-eq v0, v1, :cond_2ef return v12 .line 4462 :cond_2ef iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 const/4 v2, 0x6 add-int/2addr v0, v2 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 if-eq v0, v1, :cond_2fb return v12 .line 4466 :cond_2fb iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 add-int/lit8 v0, v0, 0x1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v17 .line 4467 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 const/4 v1, 0x2 add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v19 .line 4468 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 add-int/lit8 v0, v0, 0x4 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v22 .line 4469 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 add-int/2addr v0, v11 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v23 .line 4470 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 add-int/lit8 v0, v0, 0x7 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v25 .line 4471 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 const/16 v1, 0x8 add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v24 move/from16 v1, v17 move/from16 v2, v19 move/from16 v3, v22 move/from16 v4, v23 move/from16 v5, v25 move/from16 v6, v24 .line 4473 invoke-static/range {v1 .. v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->checkTime(CCCCCC)Z move-result v0 if-nez v0, :cond_344 return v12 :cond_344 move-object/from16 v0, p0 move/from16 v1, v17 move/from16 v2, v19 move/from16 v3, v22 move/from16 v4, v23 move/from16 v5, v25 move/from16 v6, v24 .line 4477 invoke-virtual/range {v0 .. v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->setTime(CCCCCC)V .line 4479 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 add-int/lit8 v0, v0, 0x9 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 const/16 v1, 0x2e if-ne v0, v1, :cond_485 add-int/lit8 v0, v13, 0xb if-ge v10, v0, :cond_367 return v12 .line 4504 :cond_367 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v13 add-int/lit8 v1, v1, 0xa invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 const/16 v2, 0x30 if-lt v1, v2, :cond_484 const/16 v3, 0x39 if-le v1, v3, :cond_37a goto/16 :goto_484 :cond_37a sub-int/2addr v1, v2 if-le v10, v0, :cond_38f .line 4512 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 add-int/2addr v0, v15 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 if-lt v0, v2, :cond_38f if-gt v0, v3, :cond_38f mul-int/lit8 v1, v1, 0xa sub-int/2addr v0, v2 add-int/2addr v1, v0 const/4 v0, 0x2 goto :goto_391 :cond_38f move/from16 v0, v16 :goto_391 const/4 v2, 0x2 if-ne v0, v2, :cond_3aa .line 4520 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v13 add-int/lit8 v2, v2, 0xc invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 const/16 v3, 0x30 if-lt v2, v3, :cond_3aa const/16 v4, 0x39 if-gt v2, v4, :cond_3aa mul-int/lit8 v1, v1, 0xa sub-int/2addr v2, v3 add-int/2addr v1, v2 const/4 v0, 0x3 .line 4527 :cond_3aa iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v2, v14, v1}, Ljava/util/Calendar;->set(II)V .line 4530 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v13 add-int/lit8 v1, v1, 0xa add-int/2addr v1, v0 invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 const/16 v2, 0x2b if-eq v1, v2, :cond_3e9 if-ne v1, v8, :cond_3c0 goto :goto_3e9 :cond_3c0 const/16 v2, 0x5a if-ne v1, v2, :cond_3e6 .line 4568 iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->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_3e2 .line 4569 invoke-static {v12}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String; move-result-object v1 .line 4570 array-length v2, v1 if-lez v2, :cond_3e2 .line 4571 aget-object v1, v1, v12 invoke-static {v1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; move-result-object v1 .line 4572 iget-object v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v2, v1}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V :cond_3e2 move/from16 v6, v16 goto/16 :goto_462 :cond_3e6 move v6, v12 goto/16 :goto_462 .line 4532 :cond_3e9 :goto_3e9 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v13 add-int/lit8 v2, v2, 0xa add-int/2addr v2, v0 add-int/lit8 v2, v2, 0x1 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 const/16 v3, 0x30 if-lt v2, v3, :cond_484 const/16 v4, 0x31 if-le v2, v4, :cond_3ff goto/16 :goto_484 .line 4537 :cond_3ff iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v4, v13 add-int/lit8 v4, v4, 0xa add-int/2addr v4, v0 const/4 v5, 0x2 add-int/2addr v4, v5 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v4 if-lt v4, v3, :cond_484 const/16 v3, 0x39 if-le v4, v3, :cond_413 goto/16 :goto_484 .line 4542 :cond_413 iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v13 add-int/lit8 v3, v3, 0xa add-int/2addr v3, v0 const/4 v5, 0x3 add-int/2addr v3, v5 invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 const/16 v5, 0x3a if-ne v3, v5, :cond_445 .line 4544 iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v13 add-int/lit8 v3, v3, 0xa add-int/2addr v3, v0 add-int/lit8 v3, v3, 0x4 invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 const/16 v5, 0x30 if-eq v3, v5, :cond_434 return v12 .line 4549 :cond_434 iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v13 add-int/lit8 v3, v3, 0xa add-int/2addr v3, v0 add-int/2addr v3, v11 invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 if-eq v3, v5, :cond_442 return v12 :cond_442 const/16 v18, 0x6 goto :goto_45d :cond_445 const/16 v5, 0x30 if-ne v3, v5, :cond_45b .line 4555 iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v13 add-int/lit8 v3, v3, 0xa add-int/2addr v3, v0 add-int/lit8 v3, v3, 0x4 invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 if-eq v3, v5, :cond_458 return v12 :cond_458 move/from16 v18, v11 goto :goto_45d :cond_45b const/16 v18, 0x3 .line 4564 :goto_45d invoke-virtual {v9, v1, v2, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->setTimeZone(CCC)V move/from16 v6, v18 .line 4577 :goto_462 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v13, v13, 0xa add-int/2addr v13, v0 add-int/2addr v13, v6 add-int/2addr v1, v13 invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 const/16 v1, 0x1a if-eq v0, v1, :cond_476 const/16 v1, 0x22 if-eq v0, v1, :cond_476 return v12 .line 4581 :cond_476 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v13 iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 iput-char v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 4583 iput v11, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return v16 :cond_484 :goto_484 return v12 .line 4485 :cond_485 iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v1, v14, v12}, Ljava/util/Calendar;->set(II)V .line 4487 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v1, v7 iput v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 iput-char v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 4489 iput v11, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I const/16 v1, 0x5a if-ne v0, v1, :cond_4b9 .line 4493 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->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_4b9 .line 4494 invoke-static {v12}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String; move-result-object v0 .line 4495 array-length v1, v0 if-lez v1, :cond_4b9 .line 4496 aget-object v0, v0, v12 invoke-static {v0}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; move-result-object v0 .line 4497 iget-object v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v1, v0}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V :cond_4b9 return v16 :cond_4ba move v8, v1 move/from16 v21, v3 move v7, v4 move v12, v6 move v13, v14 const/4 v11, 0x5 const/16 v15, 0xb move v14, v2 :goto_4c4 if-eqz p1, :cond_4c7 return v12 .line 4214 :cond_4c7 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 .line 4215 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0x1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 .line 4216 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v3, 0x2 add-int/2addr v0, v3 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 .line 4217 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v4, 0x3 add-int/2addr v0, v4 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v4 .line 4218 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0x4 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 .line 4219 iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v5, v11 invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v5 .line 4220 iget v6, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v18, 0x6 add-int/lit8 v6, v6, 0x6 invoke-virtual {v9, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v6 .line 4221 iget v11, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v11, v11, 0x7 invoke-virtual {v9, v11}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v11 .line 4222 iget v14, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v14, v7 invoke-virtual {v9, v14}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v14 if-ne v0, v8, :cond_514 if-ne v11, v8, :cond_514 move/from16 v8, v16 goto :goto_515 :cond_514 move v8, v12 :goto_515 if-eqz v8, :cond_51c if-ne v10, v13, :cond_51c move/from16 v18, v16 goto :goto_51e :cond_51c move/from16 v18, v12 :goto_51e if-eqz v8, :cond_527 const/16 v8, 0x11 if-ne v10, v8, :cond_527 move/from16 v19, v16 goto :goto_529 :cond_527 move/from16 v19, v12 :goto_529 if-nez v19, :cond_532 if-eqz v18, :cond_52e goto :goto_532 :cond_52e move v8, v6 move v6, v5 move v5, v0 goto :goto_53c .line 4235 :cond_532 :goto_532 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0x9 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 move v11, v0 move v8, v14 :goto_53c move/from16 v24, v1 move/from16 v25, v2 move/from16 v26, v3 move/from16 v27, v4 move/from16 v28, v5 move/from16 v29, v6 move/from16 v30, v8 move/from16 v31, v11 .line 4248 invoke-static/range {v24 .. v31}, Lcom/alibaba/fastjson/parser/JSONLexer;->checkDate(CCCCCCII)Z move-result v0 if-nez v0, :cond_553 return v12 :cond_553 move-object/from16 v0, p0 move v12, v7 move v7, v8 move v8, v11 .line 4252 invoke-direct/range {v0 .. v8}, Lcom/alibaba/fastjson/parser/JSONLexer;->setCalendar(CCCCCCCC)V if-eq v10, v12, :cond_62c .line 4256 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0x9 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 .line 4257 iget v1, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v1, v1, 0xa invoke-virtual {v9, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 .line 4258 iget v2, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v2, v15 invoke-virtual {v9, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v2 .line 4259 iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v3, v3, 0xc invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v7 .line 4260 iget v3, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v4, 0xd add-int/2addr v3, v4 invoke-virtual {v9, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v3 if-eqz v19, :cond_59a const/16 v4, 0x54 if-ne v1, v4, :cond_59a const/16 v4, 0x3a if-ne v3, v4, :cond_59a .line 4264 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v4, v13 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v4 const/16 v5, 0x5a if-eq v4, v5, :cond_5a8 :cond_59a if-eqz v18, :cond_5c0 const/16 v4, 0x20 if-eq v1, v4, :cond_5a4 const/16 v4, 0x54 if-ne v1, v4, :cond_5c0 :cond_5a4 const/16 v4, 0x3a if-ne v3, v4, :cond_5c0 .line 4268 :cond_5a8 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v1, 0xe add-int/2addr v0, v1 invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 .line 4269 iget v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0xf invoke-virtual {v9, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v0 move v14, v2 const/16 v3, 0x30 move v2, v0 move v0, v7 const/16 v7, 0x30 :cond_5c0 move/from16 v26, v14 move/from16 v27, v0 move/from16 v28, v1 move/from16 v29, v2 move/from16 v30, v7 move/from16 v31, v3 .line 4281 invoke-static/range {v26 .. v31}, Lcom/alibaba/fastjson/parser/JSONLexer;->checkTime(CCCCCC)Z move-result v4 if-nez v4, :cond_5d4 const/4 v4, 0x0 return v4 :cond_5d4 const/16 v4, 0x11 if-ne v10, v4, :cond_615 if-nez v19, :cond_615 .line 4286 iget v4, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/16 v5, 0xe add-int/2addr v4, v5 invoke-virtual {v9, v4}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v4 .line 4287 iget v5, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v5, 0xf invoke-virtual {v9, v5}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v5 .line 4288 iget v6, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v6, v13 invoke-virtual {v9, v6}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v6 const/16 v8, 0x30 if-lt v4, v8, :cond_613 const/16 v10, 0x39 if-le v4, v10, :cond_5fb goto :goto_613 :cond_5fb if-lt v5, v8, :cond_611 if-le v5, v10, :cond_600 goto :goto_611 :cond_600 if-lt v6, v8, :cond_60f if-le v6, v10, :cond_605 goto :goto_60f :cond_605 sub-int/2addr v4, v8 mul-int/lit8 v4, v4, 0x64 sub-int/2addr v5, v8 mul-int/lit8 v5, v5, 0xa add-int/2addr v4, v5 sub-int/2addr v6, v8 add-int/2addr v4, v6 goto :goto_616 :cond_60f :goto_60f const/4 v4, 0x0 return v4 :cond_611 :goto_611 const/4 v4, 0x0 return v4 :cond_613 :goto_613 const/4 v4, 0x0 return v4 :cond_615 const/4 v4, 0x0 :goto_616 move v6, v4 const/16 v4, 0x30 sub-int/2addr v14, v4 mul-int/lit8 v14, v14, 0xa sub-int/2addr v0, v4 add-int/2addr v0, v14 sub-int/2addr v1, v4 mul-int/lit8 v1, v1, 0xa sub-int/2addr v2, v4 add-int/2addr v1, v2 sub-int/2addr v7, v4 mul-int/lit8 v7, v7, 0xa sub-int/2addr v3, v4 add-int v2, v7, v3 move v4, v6 move v6, v0 goto :goto_630 :cond_62c const/4 v4, 0x0 move v1, v4 move v2, v1 move v6, v2 .line 4314 :goto_630 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {v0, v15, v6}, Ljava/util/Calendar;->set(II)V .line 4315 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 v3, 0xc invoke-virtual {v0, v3, v1}, Ljava/util/Calendar;->set(II)V .line 4316 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 v1, 0xd invoke-virtual {v0, v1, v2}, Ljava/util/Calendar;->set(II)V .line 4317 iget-object v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 v1, 0xe invoke-virtual {v0, v1, v4}, Ljava/util/Calendar;->set(II)V const/4 v0, 0x5 .line 4319 iput v0, v9, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return v16 .end method .method public final scanLongValue()J .registers 13 const/4 v0, 0x0 .line 1708 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1712 iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v2, 0x2d const/4 v3, 0x1 if-ne v1, v2, :cond_3b .line 1716 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1719 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v3 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1720 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-ge v0, v1, :cond_22 .line 1723 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v0 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const-wide/high16 v0, -0x8000000000000000L move-wide v1, v0 move v0, v3 goto :goto_40 .line 1721 :cond_22 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "syntax error, " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_3b const-wide v1, -0x7fffffffffffffffL # -4.9E-324 :goto_40 const-wide/16 v4, 0x0 .line 1732 :goto_42 iget-char v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v7, 0x30 if-lt v6, v7, :cond_be const/16 v7, 0x39 if-gt v6, v7, :cond_be add-int/lit8 v6, v6, -0x30 const-wide v7, -0xcccccccccccccccL cmp-long v7, v4, v7 .line 1735 const-string v8, ", " const-string v9, "error long value, " if-ltz v7, :cond_9f const-wide/16 v10, 0xa mul-long/2addr v4, v10 int-to-long v6, v6 add-long v10, v1, v6 cmp-long v10, v4, v10 if-ltz v10, :cond_80 sub-long/2addr v4, v6 .line 1748 iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v6, v3 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1751 iget v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v6, v3 iput v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1752 iget v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v6, v7, :cond_77 const/16 v6, 0x1a goto :goto_7d :cond_77 iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1754 invoke-virtual {v7, v6}, Ljava/lang/String;->charAt(I)C move-result v6 :goto_7d iput-char v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_42 .line 1741 :cond_80 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1, v9}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .line 1736 :cond_9f new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1, v9}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, v4, v5}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 :cond_be if-nez v0, :cond_c1 neg-long v4, v4 :cond_c1 return-wide v4 .end method .method public final scanNumber()V .registers 10 .line 1292 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I const/4 v1, 0x0 .line 1293 iput-boolean v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->exp:Z .line 1295 iget-char v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v3, 0x1a const/4 v4, 0x1 const/16 v5, 0x2d if-ne v2, v5, :cond_26 .line 1296 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v2, v4 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 .line 1299 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1300 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v2, :cond_1e move v0, v3 goto :goto_24 :cond_1e iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1302 invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_24 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1307 :cond_26 :goto_26 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v2, 0x39 const/16 v6, 0x30 if-lt v0, v6, :cond_49 if-gt v0, v2, :cond_49 .line 1309 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1315 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1316 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v2, :cond_40 move v0, v3 goto :goto_46 :cond_40 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1318 invoke-virtual {v2, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_46 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_26 .line 1322 :cond_49 iput-boolean v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z const/16 v1, 0x2e if-ne v0, v1, :cond_88 .line 1325 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1328 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1329 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v1, :cond_5f move v0, v3 goto :goto_65 :cond_5f iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1331 invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_65 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1333 iput-boolean v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z .line 1336 :goto_69 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-lt v0, v6, :cond_88 if-gt v0, v2, :cond_88 .line 1338 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1344 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1345 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v1, :cond_7f move v0, v3 goto :goto_85 :cond_7f iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1347 invoke-virtual {v1, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_85 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_69 .line 1352 :cond_88 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0x4c if-ne v0, v1, :cond_98 .line 1353 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1354 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto/16 :goto_141 :cond_98 const/16 v1, 0x53 if-ne v0, v1, :cond_a6 .line 1356 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1357 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto/16 :goto_141 :cond_a6 const/16 v1, 0x42 if-ne v0, v1, :cond_b4 .line 1359 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1360 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto/16 :goto_141 :cond_b4 const/16 v1, 0x46 if-ne v0, v1, :cond_c4 .line 1362 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1363 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 1364 iput-boolean v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z goto/16 :goto_141 :cond_c4 const/16 v7, 0x44 if-ne v0, v7, :cond_d4 .line 1366 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1367 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 1368 iput-boolean v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z goto/16 :goto_141 :cond_d4 const/16 v8, 0x65 if-eq v0, v8, :cond_dc const/16 v8, 0x45 if-ne v0, v8, :cond_141 .line 1371 :cond_dc iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1374 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1375 iget v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v8, :cond_ec move v0, v3 goto :goto_f2 :cond_ec iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1377 invoke-virtual {v8, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_f2 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v8, 0x2b if-eq v0, v8, :cond_fa if-ne v0, v5, :cond_112 .line 1382 :cond_fa iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1385 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1386 iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v5, :cond_10a move v0, v3 goto :goto_110 :cond_10a iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1388 invoke-virtual {v5, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_110 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1393 :cond_112 :goto_112 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-lt v0, v6, :cond_131 if-gt v0, v2, :cond_131 .line 1395 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1401 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1402 iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v0, v5, :cond_128 move v0, v3 goto :goto_12e :cond_128 iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1404 invoke-virtual {v5, v0}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_12e iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_112 :cond_131 if-eq v0, v7, :cond_135 if-ne v0, v1, :cond_13d .line 1410 :cond_135 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v0, v4 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1411 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 1414 :cond_13d iput-boolean v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->exp:Z .line 1415 iput-boolean v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z .line 1418 :cond_141 :goto_141 iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->isDouble:Z if-eqz v0, :cond_149 const/4 v0, 0x3 .line 1419 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I goto :goto_14c :cond_149 const/4 v0, 0x2 .line 1421 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I :goto_14c return-void .end method .method public final scanNumberValue()Ljava/lang/Number; .registers 17 move-object/from16 v1, p0 .line 1452 iget v0, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v2, 0x0 .line 1456 iput v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1460 iget-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 v5, 0x1 const/16 v6, 0x2d if-ne v3, v6, :cond_27 .line 1464 iput v5, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/lit8 v3, v0, 0x1 .line 1467 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1468 iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v7, :cond_1b const/16 v3, 0x1a goto :goto_21 :cond_1b iget-object v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1470 invoke-virtual {v7, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_21 iput-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const-wide/high16 v7, -0x8000000000000000L move v3, v5 goto :goto_2d :cond_27 const-wide v7, -0x7fffffffffffffffL # -4.9E-324 move v3, v2 :goto_2d const-wide/16 v9, 0x0 move v11, v2 .line 1479 :goto_30 iget-char v12, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v13, 0x39 const/16 v14, 0x30 if-lt v12, v14, :cond_6c if-gt v12, v13, :cond_6c add-int/lit8 v12, v12, -0x30 const-wide v13, -0xcccccccccccccccL cmp-long v13, v9, v13 if-gez v13, :cond_46 move v11, v5 :cond_46 const-wide/16 v13, 0xa mul-long/2addr v9, v13 int-to-long v12, v12 add-long v14, v7, v12 cmp-long v14, v9, v14 if-gez v14, :cond_51 move v11, v5 :cond_51 sub-long/2addr v9, v12 .line 1495 iget v12, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v12, v5 iput v12, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1498 iget v12, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v12, v5 iput v12, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1499 iget v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v12, v13, :cond_63 const/16 v12, 0x1a goto :goto_69 :cond_63 iget-object v13, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1501 invoke-virtual {v13, v12}, Ljava/lang/String;->charAt(I)C move-result v12 :goto_69 iput-char v12, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_30 :cond_6c if-nez v3, :cond_6f neg-long v9, v9 :cond_6f const/16 v7, 0x4c const/16 v8, 0x44 const/16 v15, 0x46 if-ne v12, v7, :cond_86 .line 1510 iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v7, v5 iput v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1511 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 1512 invoke-static {v9, v10}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v7 :goto_83 move v12, v3 move-object v2, v7 goto :goto_cf :cond_86 const/16 v7, 0x53 if-ne v12, v7, :cond_99 .line 1514 iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v7, v5 iput v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1515 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C long-to-int v7, v9 int-to-short v7, v7 .line 1516 invoke-static {v7}, Ljava/lang/Short;->valueOf(S)Ljava/lang/Short; move-result-object v7 goto :goto_83 :cond_99 const/16 v7, 0x42 if-ne v12, v7, :cond_ac .line 1518 iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v7, v5 iput v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1519 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C long-to-int v7, v9 int-to-byte v7, v7 .line 1520 invoke-static {v7}, Ljava/lang/Byte;->valueOf(B)Ljava/lang/Byte; move-result-object v7 goto :goto_83 :cond_ac if-ne v12, v15, :cond_bc .line 1522 iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v7, v5 iput v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1523 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C long-to-float v7, v9 .line 1524 invoke-static {v7}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object v7 goto :goto_83 :cond_bc if-ne v12, v8, :cond_cd .line 1526 iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v7, v5 iput v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1527 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C move v12, v3 long-to-double v2, v9 .line 1528 invoke-static {v2, v3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object v2 goto :goto_cf :cond_cd move v12, v3 const/4 v2, 0x0 .line 1532 :goto_cf iget-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v4, 0x2e if-ne v3, v4, :cond_110 .line 1535 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1538 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1539 iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v7, :cond_e6 const/16 v3, 0x1a goto :goto_ec :cond_e6 iget-object v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1541 invoke-virtual {v7, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_ec iput-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1545 :goto_ee iget-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-lt v3, v14, :cond_10e if-gt v3, v13, :cond_10e .line 1547 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1553 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1554 iget v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v7, :cond_105 const/16 v3, 0x1a goto :goto_10b :cond_105 iget-object v7, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1556 invoke-virtual {v7, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_10b iput-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_ee :cond_10e move v7, v5 goto :goto_111 :cond_110 const/4 v7, 0x0 .line 1562 :goto_111 iget-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v4, 0x65 const/16 v15, 0x2b if-eq v3, v4, :cond_122 const/16 v4, 0x45 if-ne v3, v4, :cond_11e goto :goto_122 :cond_11e const/4 v3, 0x0 const/4 v4, 0x0 goto/16 :goto_18a .line 1564 :cond_122 :goto_122 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1567 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1568 iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v4, :cond_133 const/16 v3, 0x1a goto :goto_139 :cond_133 iget-object v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1570 invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_139 iput-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-eq v3, v15, :cond_13f if-ne v3, v6, :cond_158 .line 1575 :cond_13f iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1578 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1579 iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v4, :cond_150 const/16 v3, 0x1a goto :goto_156 :cond_150 iget-object v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1581 invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_156 iput-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 1586 :cond_158 :goto_158 iget-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-lt v3, v14, :cond_178 if-gt v3, v13, :cond_178 .line 1588 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1594 iget v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v5 iput v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1595 iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v4, :cond_16f const/16 v3, 0x1a goto :goto_175 :cond_16f iget-object v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1597 invoke-virtual {v4, v3}, Ljava/lang/String;->charAt(I)C move-result v3 :goto_175 iput-char v3, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C goto :goto_158 :cond_178 if-eq v3, v8, :cond_181 const/16 v4, 0x46 if-ne v3, v4, :cond_17f goto :goto_181 :cond_17f const/4 v3, 0x0 goto :goto_189 .line 1603 :cond_181 :goto_181 iget v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/2addr v4, v5 iput v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1605 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C :goto_189 move v4, v5 :goto_18a if-nez v7, :cond_1c1 if-nez v4, :cond_1c1 if-eqz v11, :cond_1a6 .line 1614 iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int v3, v2, v0 .line 1615 new-array v3, v3, [C .line 1616 iget-object v4, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const/4 v5, 0x0 invoke-virtual {v4, v0, v2, v3, v5}, Ljava/lang/String;->getChars(II[CI)V .line 1617 new-instance v0, Ljava/lang/String; invoke-direct {v0, v3}, Ljava/lang/String;->([C)V .line 1618 new-instance v2, Ljava/math/BigInteger; invoke-direct {v2, v0}, Ljava/math/BigInteger;->(Ljava/lang/String;)V :cond_1a6 if-nez v2, :cond_1c0 const-wide/32 v2, -0x80000000 cmp-long v0, v9, v2 if-lez v0, :cond_1bc const-wide/32 v2, 0x7fffffff cmp-long v0, v9, v2 if-gez v0, :cond_1bc long-to-int v0, v9 .line 1622 invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer; move-result-object v2 goto :goto_1c0 .line 1624 :cond_1bc invoke-static {v9, v10}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long; move-result-object v2 :cond_1c0 :goto_1c0 return-object v2 .line 1630 :cond_1c1 iget v2, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I sub-int/2addr v2, v0 if-eqz v3, :cond_1c8 add-int/lit8 v2, v2, -0x1 .line 1636 :cond_1c8 iget-object v8, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C array-length v9, v8 if-ge v2, v9, :cond_1d8 .line 1637 iget-object v9, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int v10, v0, v2 const/4 v7, 0x0 invoke-virtual {v9, v0, v10, v8, v7}, Ljava/lang/String;->getChars(II[CI)V .line 1638 iget-object v0, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C goto :goto_1e3 :cond_1d8 const/4 v7, 0x0 .line 1640 new-array v8, v2, [C .line 1641 iget-object v9, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int v10, v0, v2 invoke-virtual {v9, v0, v10, v8, v7}, Ljava/lang/String;->getChars(II[CI)V move-object v0, v8 :goto_1e3 if-nez v4, :cond_1f4 .line 1646 iget v8, v1, Lcom/alibaba/fastjson/parser/JSONLexer;->features:I sget-object v9, Lcom/alibaba/fastjson/parser/Feature;->UseBigDecimal:Lcom/alibaba/fastjson/parser/Feature; iget v9, v9, Lcom/alibaba/fastjson/parser/Feature;->mask:I and-int/2addr v8, v9 if-eqz v8, :cond_1f4 .line 1648 new-instance v3, Ljava/math/BigDecimal; invoke-direct {v3, v0, v7, v2}, Ljava/math/BigDecimal;->([CII)V goto :goto_251 :cond_1f4 const/16 v8, 0x9 if-gt v2, v8, :cond_238 if-nez v4, :cond_238 .line 1654 :try_start_1fa aget-char v4, v0, v7 if-eq v4, v6, :cond_203 if-ne v4, v15, :cond_201 goto :goto_203 :cond_201 move v6, v5 goto :goto_206 .line 1656 :cond_203 :goto_203 aget-char v4, v0, v5 const/4 v6, 0x2 :goto_206 sub-int/2addr v4, v14 const/4 v7, 0x0 :goto_208 if-ge v6, v2, :cond_21e .line 1662 aget-char v8, v0, v6 const/16 v9, 0x2e if-ne v8, v9, :cond_212 move v7, v5 goto :goto_21b :cond_212 add-int/lit8 v8, v8, -0x30 mul-int/lit8 v4, v4, 0xa add-int/2addr v4, v8 if-eqz v7, :cond_21b mul-int/lit8 v7, v7, 0xa :cond_21b :goto_21b add-int/lit8 v6, v6, 0x1 goto :goto_208 :cond_21e const/16 v0, 0x46 if-ne v3, v0, :cond_22d int-to-float v0, v4 int-to-float v2, v7 div-float/2addr v0, v2 if-eqz v12, :cond_228 neg-float v0, v0 .line 1682 :cond_228 invoke-static {v0}, Ljava/lang/Float;->valueOf(F)Ljava/lang/Float; move-result-object v0 return-object v0 :cond_22d int-to-double v2, v4 int-to-double v4, v7 div-double/2addr v2, v4 if-eqz v12, :cond_233 neg-double v2, v2 .line 1690 :cond_233 invoke-static {v2, v3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object v0 return-object v0 .line 1693 :cond_238 new-instance v4, Ljava/lang/String; const/4 v5, 0x0 invoke-direct {v4, v0, v5, v2}, Ljava/lang/String;->([CII)V const/16 v0, 0x46 if-ne v3, v0, :cond_248 .line 1695 invoke-static {v4}, Ljava/lang/Float;->valueOf(Ljava/lang/String;)Ljava/lang/Float; move-result-object v0 :goto_246 move-object v3, v0 goto :goto_251 .line 1697 :cond_248 invoke-static {v4}, Ljava/lang/Double;->parseDouble(Ljava/lang/String;)D move-result-wide v2 invoke-static {v2, v3}, Ljava/lang/Double;->valueOf(D)Ljava/lang/Double; move-result-object v0 :try_end_250 .catch Ljava/lang/NumberFormatException; {:try_start_1fa .. :try_end_250} :catch_252 goto :goto_246 :goto_251 return-object v3 :catch_252 move-exception v0 .line 1700 new-instance v2, Lcom/alibaba/fastjson/JSONException; new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V invoke-virtual {v0}, Ljava/lang/NumberFormatException;->getMessage()Ljava/lang/String; move-result-object v4 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 const-string v4, ", " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v4 invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v3 invoke-direct {v2, v3, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v2 .end method .method public final scanString()V .registers 12 .line 987 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 989 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v2, 0x1 add-int/2addr v1, v2 .line 990 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v3, v0, v1}, Ljava/lang/String;->indexOf(II)I move-result v3 const/4 v4, -0x1 if-eq v3, v4, :cond_89 sub-int v1, v3, v1 .line 999 iget v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v4, v2 invoke-virtual {p0, v4, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C move-result-object v4 const/4 v5, 0x0 move v6, v5 :goto_1a const/16 v7, 0x5c if-lez v1, :cond_5d add-int/lit8 v8, v1, -0x1 .line 1000 aget-char v8, v4, v8 if-ne v8, v7, :cond_5d add-int/lit8 v8, v1, -0x2 move v9, v2 :goto_27 if-ltz v8, :cond_32 .line 1005 aget-char v10, v4, v8 if-ne v10, v7, :cond_32 add-int/lit8 v9, v9, 0x1 add-int/lit8 v8, v8, -0x1 goto :goto_27 .line 1011 :cond_32 rem-int/lit8 v9, v9, 0x2 if-nez v9, :cond_37 goto :goto_5d .line 1015 :cond_37 iget-object v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int/lit8 v7, v3, 0x1 invoke-virtual {v6, v0, v7}, Ljava/lang/String;->indexOf(II)I move-result v6 sub-int v7, v6, v3 add-int/2addr v7, v1 .line 1019 array-length v8, v4 if-lt v7, v8, :cond_54 .line 1020 array-length v8, v4 mul-int/lit8 v8, v8, 0x3 div-int/lit8 v8, v8, 0x2 if-ge v8, v7, :cond_4d move v8, v7 .line 1024 :cond_4d new-array v8, v8, [C .line 1025 array-length v9, v4 invoke-static {v4, v5, v8, v5, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v4, v8 .line 1028 :cond_54 iget-object v8, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v8, v3, v6, v4, v1}, Ljava/lang/String;->getChars(II[CI)V move v3, v6 move v1, v7 move v6, v2 goto :goto_1a :cond_5d :goto_5d if-nez v6, :cond_69 :goto_5f if-ge v5, v1, :cond_69 .line 1037 aget-char v0, v4, v5 if-ne v0, v7, :cond_66 move v6, v2 :cond_66 add-int/lit8 v5, v5, 0x1 goto :goto_5f .line 1043 :cond_69 iput-object v4, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C .line 1044 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1045 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 1046 iput-boolean v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->hasSpecial:Z add-int/2addr v3, v2 .line 1048 iput v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1052 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v3, v0, :cond_7d const/16 v0, 0x1a goto :goto_83 :cond_7d iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1054 invoke-virtual {v0, v3}, Ljava/lang/String;->charAt(I)C move-result v0 :goto_83 iput-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/4 v0, 0x4 .line 1057 iput v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-void .line 992 :cond_89 new-instance v0, Lcom/alibaba/fastjson/JSONException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "unclosed str, " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v2 invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .end method .method public scanStringValue(C)Ljava/lang/String; .registers 9 .line 1061 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0x1 .line 1062 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v1, p1, v0}, Ljava/lang/String;->indexOf(II)I move-result v1 const/4 v2, -0x1 if-eq v1, v2, :cond_73 .line 1068 sget-boolean v3, Lcom/alibaba/fastjson/parser/JSONLexer;->V6:Z const/4 v4, 0x0 if-eqz v3, :cond_19 .line 1069 iget-object v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v3, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v3 goto :goto_29 :cond_19 sub-int v3, v1, v0 .line 1072 iget v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v5, v5, 0x1 invoke-virtual {p0, v5, v3}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C move-result-object v5 .line 1073 new-instance v6, Ljava/lang/String; invoke-direct {v6, v5, v4, v3}, Ljava/lang/String;->([CII)V move-object v3, v6 :goto_29 const/16 v5, 0x5c .line 1076 invoke-virtual {v3, v5}, Ljava/lang/String;->indexOf(I)I move-result v6 if-eq v6, v2, :cond_5f :goto_31 add-int/lit8 v2, v1, -0x1 move v3, v4 :goto_34 if-ltz v2, :cond_43 .line 1080 iget-object v6, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v6, v2}, Ljava/lang/String;->charAt(I)C move-result v6 if-ne v6, v5, :cond_43 add-int/lit8 v3, v3, 0x1 add-int/lit8 v2, v2, -0x1 goto :goto_34 .line 1086 :cond_43 rem-int/lit8 v3, v3, 0x2 if-nez v3, :cond_56 sub-int p1, v1, v0 .line 1093 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/lit8 v0, v0, 0x1 invoke-virtual {p0, v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C move-result-object v0 .line 1094 invoke-static {v0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String; move-result-object v3 goto :goto_5f .line 1089 :cond_56 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int/lit8 v1, v1, 0x1 invoke-virtual {v2, p1, v1}, Ljava/lang/String;->indexOf(II)I move-result v1 goto :goto_31 :cond_5f :goto_5f add-int/lit8 v1, v1, 0x1 .line 1097 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 1101 iget p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v1, p1, :cond_6a const/16 p1, 0x1a goto :goto_70 :cond_6a iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 1103 invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C move-result p1 :goto_70 iput-char p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return-object v3 .line 1064 :cond_73 new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "unclosed str, " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0}, 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; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .end method .method public final scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String; .registers 6 .line 703 :goto_0 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0x20 if-eq v0, v1, :cond_52 const/16 v1, 0xa if-eq v0, v1, :cond_52 const/16 v1, 0xd if-eq v0, v1, :cond_52 const/16 v2, 0x9 if-eq v0, v2, :cond_52 const/16 v2, 0xc if-eq v0, v2, :cond_52 const/16 v2, 0x8 if-ne v0, v2, :cond_1b goto :goto_52 :cond_1b const/16 v2, 0x22 if-ne v0, v2, :cond_24 .line 716 invoke-virtual {p0, p1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String; move-result-object p1 return-object p1 :cond_24 const/16 v2, 0x27 if-ne v0, v2, :cond_2d .line 720 invoke-virtual {p0, p1, v2}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String; move-result-object p1 return-object p1 :cond_2d const/16 v2, 0x7d const/4 v3, 0x0 if-ne v0, v2, :cond_38 .line 724 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 725 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v3 :cond_38 const/16 v1, 0x2c if-ne v0, v1, :cond_44 .line 730 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C const/16 p1, 0x10 .line 731 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v3 :cond_44 const/16 v1, 0x1a if-ne v0, v1, :cond_4d const/16 p1, 0x14 .line 736 iput p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return-object v3 .line 740 :cond_4d invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/parser/JSONLexer;->scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String; move-result-object p1 return-object p1 .line 709 :cond_52 :goto_52 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_0 .end method .method public scanSymbol(Lcom/alibaba/fastjson/parser/SymbolTable;C)Ljava/lang/String; .registers 13 .line 747 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I const/4 v1, 0x1 add-int/2addr v0, v1 .line 748 iget-object v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v2, p2, v0}, Ljava/lang/String;->indexOf(II)I move-result v2 const/4 v3, -0x1 if-eq v2, v3, :cond_99 sub-int v0, v2, v0 .line 757 iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I add-int/2addr v3, v1 invoke-virtual {p0, v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->sub_chars(II)[C move-result-object v3 const/4 v4, 0x0 move v5, v4 :goto_18 const/16 v6, 0x5c if-lez v0, :cond_5b add-int/lit8 v7, v0, -0x1 .line 758 aget-char v7, v3, v7 if-ne v7, v6, :cond_5b add-int/lit8 v7, v0, -0x2 move v8, v1 :goto_25 if-ltz v7, :cond_30 .line 763 aget-char v9, v3, v7 if-ne v9, v6, :cond_30 add-int/lit8 v8, v8, 0x1 add-int/lit8 v7, v7, -0x1 goto :goto_25 .line 769 :cond_30 rem-int/lit8 v8, v8, 0x2 if-nez v8, :cond_35 goto :goto_5b .line 773 :cond_35 iget-object v5, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int/lit8 v6, v2, 0x1 invoke-virtual {v5, p2, v6}, Ljava/lang/String;->indexOf(II)I move-result v5 sub-int v6, v5, v2 add-int/2addr v6, v0 .line 777 array-length v7, v3 if-lt v6, v7, :cond_52 .line 778 array-length v7, v3 mul-int/lit8 v7, v7, 0x3 div-int/lit8 v7, v7, 0x2 if-ge v7, v6, :cond_4b move v7, v6 .line 782 :cond_4b new-array v7, v7, [C .line 783 array-length v8, v3 invoke-static {v3, v4, v7, v4, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V move-object v3, v7 .line 786 :cond_52 iget-object v7, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; invoke-virtual {v7, v2, v5, v3, v0}, Ljava/lang/String;->getChars(II[CI)V move v2, v5 move v0, v6 move v5, v1 goto :goto_18 :cond_5b :goto_5b if-nez v5, :cond_82 move p2, v4 move v7, p2 :goto_5f if-ge p2, v0, :cond_6c .line 796 aget-char v8, v3, p2 mul-int/lit8 v7, v7, 0x1f add-int/2addr v7, v8 if-ne v8, v6, :cond_69 move v5, v1 :cond_69 add-int/lit8 p2, p2, 0x1 goto :goto_5f :cond_6c if-eqz v5, :cond_73 .line 804 invoke-static {v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String; move-result-object p1 goto :goto_86 :cond_73 const/16 p2, 0x14 if-ge v0, p2, :cond_7c .line 806 invoke-virtual {p1, v3, v4, v0, v7}, Lcom/alibaba/fastjson/parser/SymbolTable;->addSymbol([CIII)Ljava/lang/String; move-result-object p1 goto :goto_86 :cond_7c new-instance p1, Ljava/lang/String; invoke-direct {p1, v3, v4, v0}, Ljava/lang/String;->([CII)V goto :goto_86 .line 809 :cond_82 invoke-static {v3, v0}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String; move-result-object p1 :goto_86 add-int/2addr v2, v1 .line 812 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I .line 816 iget p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->len:I if-lt v2, p2, :cond_90 const/16 p2, 0x1a goto :goto_96 :cond_90 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; .line 818 invoke-virtual {p2, v2}, Ljava/lang/String;->charAt(I)C move-result p2 :goto_96 iput-char p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C return-object p1 .line 750 :cond_99 new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance p2, Ljava/lang/StringBuilder; const-string v0, "unclosed str, " invoke-direct {p2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->info()Ljava/lang/String; move-result-object v0 invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .end method .method public final scanSymbolUnQuoted(Lcom/alibaba/fastjson/parser/SymbolTable;)Ljava/lang/String; .registers 7 .line 948 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C .line 950 sget-object v1, Lcom/alibaba/fastjson/parser/JSONLexer;->firstIdentifierFlags:[Z array-length v2, v1 if-ge v0, v2, :cond_31 aget-boolean v1, v1, v0 if-eqz v1, :cond_c goto :goto_31 .line 952 :cond_c new-instance p1, Lcom/alibaba/fastjson/JSONException; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "illegal identifier : " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 .line 953 invoke-virtual {p0}, 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; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw p1 .line 958 :cond_31 :goto_31 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I const/4 v1, 0x1 .line 959 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 961 :goto_38 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C move-result v2 .line 963 sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexer;->identifierFlags:[Z array-length v4, v3 if-ge v2, v4, :cond_6f .line 964 aget-boolean v3, v3, v2 if-nez v3, :cond_6f .line 975 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->bp:I invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->charAt(I)C move-result v1 iput-char v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0x12 .line 976 iput v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I .line 978 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I const/4 v2, 0x4 if-ne v1, v2, :cond_64 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; const-string v2, "null" iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I .line 979 invoke-virtual {v1, v2, v3}, Ljava/lang/String;->startsWith(Ljava/lang/String;I)Z move-result v1 if-eqz v1, :cond_64 const/4 p1, 0x0 return-object p1 .line 983 :cond_64 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I iget v3, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I invoke-virtual {p1, v1, v2, v3, v0}, Lcom/alibaba/fastjson/parser/SymbolTable;->addSymbol(Ljava/lang/String;III)Ljava/lang/String; move-result-object p1 return-object p1 :cond_6f mul-int/lit8 v0, v0, 0x1f add-int/2addr v0, v2 .line 971 iget v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I add-int/2addr v2, v1 iput v2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I goto :goto_38 .end method .method protected setTime(CCCCCC)V .registers 7 add-int/lit8 p1, p1, -0x30 mul-int/lit8 p1, p1, 0xa add-int/lit8 p2, p2, -0x30 add-int/2addr p1, p2 add-int/lit8 p3, p3, -0x30 mul-int/lit8 p3, p3, 0xa add-int/lit8 p4, p4, -0x30 add-int/2addr p3, p4 add-int/lit8 p5, p5, -0x30 mul-int/lit8 p5, p5, 0xa add-int/lit8 p6, p6, -0x30 add-int/2addr p5, p6 .line 4591 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 p4, 0xb invoke-virtual {p2, p4, p1}, Ljava/util/Calendar;->set(II)V .line 4592 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 p2, 0xc invoke-virtual {p1, p2, p3}, Ljava/util/Calendar;->set(II)V .line 4593 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; const/16 p2, 0xd invoke-virtual {p1, p2, p5}, Ljava/util/Calendar;->set(II)V return-void .end method .method protected setTimeZone(CCC)V .registers 4 add-int/lit8 p2, p2, -0x30 mul-int/lit8 p2, p2, 0xa add-int/lit8 p3, p3, -0x30 add-int/2addr p2, p3 const p3, 0x36ee80 mul-int/2addr p2, p3 const/16 p3, 0x2d if-ne p1, p3, :cond_10 neg-int p2, p2 .line 4602 :cond_10 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->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_2f .line 4603 invoke-static {p2}, Ljava/util/TimeZone;->getAvailableIDs(I)[Ljava/lang/String; move-result-object p1 .line 4604 array-length p2, p1 if-lez p2, :cond_2f const/4 p2, 0x0 .line 4605 aget-object p1, p1, p2 invoke-static {p1}, Ljava/util/TimeZone;->getTimeZone(Ljava/lang/String;)Ljava/util/TimeZone; move-result-object p1 .line 4606 iget-object p2, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->calendar:Ljava/util/Calendar; invoke-virtual {p2, p1}, Ljava/util/Calendar;->setTimeZone(Ljava/util/TimeZone;)V :cond_2f return-void .end method .method protected skipComment()V .registers 5 .line 918 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 919 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0x2f if-ne v0, v1, :cond_16 .line 921 :cond_9 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 922 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0xa if-ne v0, v1, :cond_9 .line 923 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C return-void :cond_16 const/16 v2, 0x2a if-ne v0, v2, :cond_35 .line 928 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 930 :cond_1d :goto_1d iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v3, 0x1a if-eq v0, v3, :cond_34 if-ne v0, v2, :cond_30 .line 932 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C .line 933 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C if-ne v0, v1, :cond_1d .line 934 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_34 .line 940 :cond_30 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_1d :cond_34 :goto_34 return-void .line 943 :cond_35 new-instance v0, Lcom/alibaba/fastjson/JSONException; const-string v1, "invalid comment" invoke-direct {v0, v1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;)V throw v0 .end method .method final skipWhitespace()V .registers 4 .line 1270 :goto_0 iget-char v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->ch:C const/16 v1, 0x2f if-gt v0, v1, :cond_29 const/16 v2, 0x20 if-eq v0, v2, :cond_25 const/16 v2, 0xd if-eq v0, v2, :cond_25 const/16 v2, 0xa if-eq v0, v2, :cond_25 const/16 v2, 0x9 if-eq v0, v2, :cond_25 const/16 v2, 0xc if-eq v0, v2, :cond_25 const/16 v2, 0x8 if-ne v0, v2, :cond_1f goto :goto_25 :cond_1f if-ne v0, v1, :cond_29 .line 1280 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->skipComment()V goto :goto_0 .line 1277 :cond_25 :goto_25 invoke-virtual {p0}, Lcom/alibaba/fastjson/parser/JSONLexer;->next()C goto :goto_0 :cond_29 return-void .end method .method public final stringVal()Ljava/lang/String; .registers 3 .line 1219 iget-boolean v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->hasSpecial:Z if-eqz v0, :cond_d iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1220 invoke-static {v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->readString([CI)Ljava/lang/String; move-result-object v0 goto :goto_17 :cond_d iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->np:I add-int/lit8 v0, v0, 0x1 iget v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sp:I .line 1221 invoke-direct {p0, v0, v1}, Lcom/alibaba/fastjson/parser/JSONLexer;->subString(II)Ljava/lang/String; move-result-object v0 :goto_17 return-object v0 .end method .method final sub_chars(II)[C .registers 6 .line 1236 iget-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C array-length v1, v0 const/4 v2, 0x0 if-ge p2, v1, :cond_f .line 1237 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int/2addr p2, p1 invoke-virtual {v1, p1, p2, v0, v2}, Ljava/lang/String;->getChars(II[CI)V .line 1238 iget-object p1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C return-object p1 .line 1240 :cond_f new-array v0, p2, [C iput-object v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->sbuf:[C .line 1241 iget-object v1, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->text:Ljava/lang/String; add-int/2addr p2, p1 invoke-virtual {v1, p1, p2, v0, v2}, Ljava/lang/String;->getChars(II[CI)V return-object v0 .end method .method public final token()I .registers 2 .line 132 iget v0, p0, Lcom/alibaba/fastjson/parser/JSONLexer;->token:I return v0 .end method