.class public final Lcom/alibaba/fastjson/serializer/SerializeWriter; .super Ljava/io/Writer; .source "SerializeWriter.java" # static fields .field public static final DIGITS:[C .field static final DigitOnes:[C .field static final DigitTens:[C .field static final ascii_chars:[C .field private static final bufLocal:Ljava/lang/ThreadLocal; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ThreadLocal<", "[C>;" } .end annotation .end field .field static final digits:[C .field static final replaceChars:[C .field static final sizeTable:[I .field static final specicalFlags_doubleQuotes:[B .field static final specicalFlags_singleQuotes:[B # instance fields .field protected buf:[C .field protected count:I .field protected features:I .field protected final writer:Ljava/io/Writer; # direct methods .method static constructor ()V .registers 8 .line 40 new-instance v0, Ljava/lang/ThreadLocal; invoke-direct {v0}, Ljava/lang/ThreadLocal;->()V sput-object v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocal:Ljava/lang/ThreadLocal; const/16 v0, 0xa .line 984 new-array v1, v0, [I fill-array-data v1, :array_132 sput-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->sizeTable:[I const/16 v1, 0x24 .line 1036 new-array v1, v1, [C fill-array-data v1, :array_14a sput-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->digits:[C const/16 v1, 0x64 .line 1039 new-array v2, v1, [C fill-array-data v2, :array_172 sput-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DigitTens:[C .line 1045 new-array v1, v1, [C fill-array-data v1, :array_1da sput-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DigitOnes:[C const/16 v1, 0x60 .line 1052 new-array v1, v1, [C fill-array-data v1, :array_242 sput-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->ascii_chars:[C const/16 v1, 0xa1 .line 1059 new-array v1, v1, [B sput-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B const/16 v2, 0xa1 .line 1060 new-array v2, v2, [B sput-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_singleQuotes:[B const/16 v3, 0x5d .line 1062 new-array v3, v3, [C sput-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C const/4 v3, 0x0 const/4 v4, 0x4 .line 1064 aput-byte v4, v1, v3 const/4 v3, 0x1 .line 1065 aput-byte v4, v1, v3 const/4 v5, 0x2 .line 1066 aput-byte v4, v1, v5 const/4 v5, 0x3 .line 1067 aput-byte v4, v1, v5 .line 1068 aput-byte v4, v1, v4 const/4 v5, 0x5 .line 1069 aput-byte v4, v1, v5 const/4 v5, 0x6 .line 1070 aput-byte v4, v1, v5 const/4 v5, 0x7 .line 1071 aput-byte v4, v1, v5 const/16 v5, 0x8 .line 1072 aput-byte v3, v1, v5 const/16 v5, 0x9 .line 1073 aput-byte v3, v1, v5 .line 1074 aput-byte v3, v1, v0 const/16 v6, 0xb .line 1075 aput-byte v4, v1, v6 const/16 v6, 0xc .line 1076 aput-byte v3, v1, v6 const/16 v6, 0xd .line 1077 aput-byte v3, v1, v6 const/16 v6, 0x22 .line 1078 aput-byte v3, v1, v6 const/16 v6, 0x5c .line 1079 aput-byte v3, v1, v6 const/4 v1, 0x0 .line 1081 aput-byte v4, v2, v1 .line 1082 aput-byte v4, v2, v3 const/4 v1, 0x2 .line 1083 aput-byte v4, v2, v1 const/4 v1, 0x3 .line 1084 aput-byte v4, v2, v1 .line 1085 aput-byte v4, v2, v4 const/4 v1, 0x5 .line 1086 aput-byte v4, v2, v1 const/4 v1, 0x6 .line 1087 aput-byte v4, v2, v1 const/4 v1, 0x7 .line 1088 aput-byte v4, v2, v1 const/16 v1, 0x8 .line 1089 aput-byte v3, v2, v1 .line 1090 aput-byte v3, v2, v5 .line 1091 aput-byte v3, v2, v0 const/16 v1, 0xb .line 1092 aput-byte v4, v2, v1 const/16 v1, 0xc .line 1093 aput-byte v3, v2, v1 const/16 v1, 0xd .line 1094 aput-byte v3, v2, v1 .line 1095 aput-byte v3, v2, v6 const/16 v1, 0x27 .line 1096 aput-byte v3, v2, v1 const/16 v1, 0xe :goto_ac const/16 v2, 0x1f if-gt v1, v2, :cond_bb .line 1099 sget-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B aput-byte v4, v2, v1 .line 1100 sget-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_singleQuotes:[B aput-byte v4, v2, v1 add-int/lit8 v1, v1, 0x1 goto :goto_ac :cond_bb const/16 v1, 0x7f :goto_bd const/16 v2, 0xa0 if-ge v1, v2, :cond_cc .line 1104 sget-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B aput-byte v4, v2, v1 .line 1105 sget-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_singleQuotes:[B aput-byte v4, v2, v1 add-int/lit8 v1, v1, 0x1 goto :goto_bd .line 1108 :cond_cc sget-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C const/4 v2, 0x0 const/16 v7, 0x30 aput-char v7, v1, v2 const/16 v2, 0x31 .line 1109 aput-char v2, v1, v3 const/4 v2, 0x2 const/16 v3, 0x32 .line 1110 aput-char v3, v1, v2 const/4 v2, 0x3 const/16 v3, 0x33 .line 1111 aput-char v3, v1, v2 const/16 v2, 0x34 .line 1112 aput-char v2, v1, v4 const/4 v2, 0x5 const/16 v3, 0x35 .line 1113 aput-char v3, v1, v2 const/4 v2, 0x6 const/16 v3, 0x36 .line 1114 aput-char v3, v1, v2 const/4 v2, 0x7 const/16 v3, 0x37 .line 1115 aput-char v3, v1, v2 const/16 v2, 0x8 const/16 v3, 0x62 .line 1116 aput-char v3, v1, v2 const/16 v2, 0x74 .line 1117 aput-char v2, v1, v5 const/16 v2, 0x6e .line 1118 aput-char v2, v1, v0 const/16 v0, 0xb const/16 v2, 0x76 .line 1119 aput-char v2, v1, v0 const/16 v0, 0xc const/16 v2, 0x66 .line 1120 aput-char v2, v1, v0 const/16 v0, 0xd const/16 v2, 0x72 .line 1121 aput-char v2, v1, v0 const/16 v0, 0x22 const/16 v2, 0x22 .line 1122 aput-char v2, v1, v0 const/16 v0, 0x27 const/16 v2, 0x27 .line 1123 aput-char v2, v1, v0 const/16 v0, 0x2f const/16 v2, 0x2f .line 1124 aput-char v2, v1, v0 .line 1125 aput-char v6, v1, v6 const/16 v0, 0x10 .line 1128 new-array v0, v0, [C fill-array-data v0, :array_2a6 sput-object v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DIGITS:[C return-void :array_132 .array-data 4 0x9 0x63 0x3e7 0x270f 0x1869f 0xf423f 0x98967f 0x5f5e0ff 0x3b9ac9ff 0x7fffffff .end array-data :array_14a .array-data 2 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x61s 0x62s 0x63s 0x64s 0x65s 0x66s 0x67s 0x68s 0x69s 0x6as 0x6bs 0x6cs 0x6ds 0x6es 0x6fs 0x70s 0x71s 0x72s 0x73s 0x74s 0x75s 0x76s 0x77s 0x78s 0x79s 0x7as .end array-data :array_172 .array-data 2 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x30s 0x31s 0x31s 0x31s 0x31s 0x31s 0x31s 0x31s 0x31s 0x31s 0x31s 0x32s 0x32s 0x32s 0x32s 0x32s 0x32s 0x32s 0x32s 0x32s 0x32s 0x33s 0x33s 0x33s 0x33s 0x33s 0x33s 0x33s 0x33s 0x33s 0x33s 0x34s 0x34s 0x34s 0x34s 0x34s 0x34s 0x34s 0x34s 0x34s 0x34s 0x35s 0x35s 0x35s 0x35s 0x35s 0x35s 0x35s 0x35s 0x35s 0x35s 0x36s 0x36s 0x36s 0x36s 0x36s 0x36s 0x36s 0x36s 0x36s 0x36s 0x37s 0x37s 0x37s 0x37s 0x37s 0x37s 0x37s 0x37s 0x37s 0x37s 0x38s 0x38s 0x38s 0x38s 0x38s 0x38s 0x38s 0x38s 0x38s 0x38s 0x39s 0x39s 0x39s 0x39s 0x39s 0x39s 0x39s 0x39s 0x39s 0x39s .end array-data :array_1da .array-data 2 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s .end array-data :array_242 .array-data 2 0x30s 0x30s 0x30s 0x31s 0x30s 0x32s 0x30s 0x33s 0x30s 0x34s 0x30s 0x35s 0x30s 0x36s 0x30s 0x37s 0x30s 0x38s 0x30s 0x39s 0x30s 0x41s 0x30s 0x42s 0x30s 0x43s 0x30s 0x44s 0x30s 0x45s 0x30s 0x46s 0x31s 0x30s 0x31s 0x31s 0x31s 0x32s 0x31s 0x33s 0x31s 0x34s 0x31s 0x35s 0x31s 0x36s 0x31s 0x37s 0x31s 0x38s 0x31s 0x39s 0x31s 0x41s 0x31s 0x42s 0x31s 0x43s 0x31s 0x44s 0x31s 0x45s 0x31s 0x46s 0x32s 0x30s 0x32s 0x31s 0x32s 0x32s 0x32s 0x33s 0x32s 0x34s 0x32s 0x35s 0x32s 0x36s 0x32s 0x37s 0x32s 0x38s 0x32s 0x39s 0x32s 0x41s 0x32s 0x42s 0x32s 0x43s 0x32s 0x44s 0x32s 0x45s 0x32s 0x46s .end array-data :array_2a6 .array-data 2 0x30s 0x31s 0x32s 0x33s 0x34s 0x35s 0x36s 0x37s 0x38s 0x39s 0x41s 0x42s 0x43s 0x44s 0x45s 0x46s .end array-data .end method .method public constructor ()V .registers 3 const/4 v0, 0x0 .line 47 move-object v1, v0 check-cast v1, Ljava/io/Writer; invoke-direct {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->(Ljava/io/Writer;)V return-void .end method .method public constructor (I)V .registers 3 const/4 v0, 0x0 .line 88 invoke-direct {p0, v0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->(Ljava/io/Writer;I)V return-void .end method .method public constructor (Ljava/io/Writer;)V .registers 3 .line 50 invoke-direct {p0}, Ljava/io/Writer;->()V .line 51 iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; .line 52 sget p1, Lcom/alibaba/fastjson/JSON;->DEFAULT_GENERATE_FEATURE:I iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I .line 54 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocal:Ljava/lang/ThreadLocal; invoke-virtual {p1}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, [C iput-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C if-eqz p1, :cond_19 const/4 v0, 0x0 .line 57 invoke-virtual {p1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V .line 60 :cond_19 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C if-nez p1, :cond_23 const/16 p1, 0x400 .line 61 new-array p1, p1, [C iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C :cond_23 return-void .end method .method public constructor (Ljava/io/Writer;I)V .registers 5 .line 91 invoke-direct {p0}, Ljava/io/Writer;->()V .line 92 iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-lez p2, :cond_c .line 97 new-array p1, p2, [C iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C return-void .line 95 :cond_c new-instance p1, Ljava/lang/IllegalArgumentException; new-instance v0, Ljava/lang/StringBuilder; const-string v1, "Negative initial size: " invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)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}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method public constructor (Ljava/io/Writer;I[Lcom/alibaba/fastjson/serializer/SerializerFeature;)V .registers 6 .line 69 invoke-direct {p0}, Ljava/io/Writer;->()V .line 70 iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; .line 72 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocal:Ljava/lang/ThreadLocal; invoke-virtual {p1}, Ljava/lang/ThreadLocal;->get()Ljava/lang/Object; move-result-object v0 check-cast v0, [C iput-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C if-eqz v0, :cond_15 const/4 v0, 0x0 .line 74 invoke-virtual {p1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V .line 77 :cond_15 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C if-nez p1, :cond_1f const/16 p1, 0x400 .line 78 new-array p1, p1, [C iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C .line 81 :cond_1f array-length p1, p3 const/4 v0, 0x0 :goto_21 if-ge v0, p1, :cond_2b aget-object v1, p3, v0 .line 82 iget v1, v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I or-int/2addr p2, v1 add-int/lit8 v0, v0, 0x1 goto :goto_21 .line 84 :cond_2b iput p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I return-void .end method .method public varargs constructor ([Lcom/alibaba/fastjson/serializer/SerializerFeature;)V .registers 4 const/4 v0, 0x0 const/4 v1, 0x0 .line 66 invoke-direct {p0, v0, v1, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->(Ljava/io/Writer;I[Lcom/alibaba/fastjson/serializer/SerializerFeature;)V return-void .end method .method protected static getChars(JI[C)V .registers 11 const-wide/16 v0, 0x0 cmp-long v0, p0, v0 if-gez v0, :cond_a neg-long p0, p0 const/16 v0, 0x2d goto :goto_b :cond_a const/4 v0, 0x0 :goto_b const-wide/32 v1, 0x7fffffff cmp-long v1, p0, v1 if-lez v1, :cond_35 const-wide/16 v1, 0x64 .line 999 div-long v1, p0, v1 const/4 v3, 0x6 shl-long v3, v1, v3 const/4 v5, 0x5 shl-long v5, v1, v5 add-long/2addr v3, v5 const/4 v5, 0x2 shl-long v5, v1, v5 add-long/2addr v3, v5 sub-long/2addr p0, v3 long-to-int p0, p0 add-int/lit8 p1, p2, -0x1 .line 1003 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DigitOnes:[C aget-char v3, v3, p0 aput-char v3, p3, p1 add-int/lit8 p2, p2, -0x2 .line 1004 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DigitTens:[C aget-char p0, p1, p0 aput-char p0, p3, p2 move-wide p0, v1 goto :goto_b :cond_35 long-to-int p0, p0 :goto_36 const/high16 p1, 0x10000 if-lt p0, p1, :cond_57 .line 1011 div-int/lit8 p1, p0, 0x64 shl-int/lit8 v1, p1, 0x6 shl-int/lit8 v2, p1, 0x5 add-int/2addr v1, v2 shl-int/lit8 v2, p1, 0x2 add-int/2addr v1, v2 sub-int/2addr p0, v1 add-int/lit8 v1, p2, -0x1 .line 1015 sget-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DigitOnes:[C aget-char v2, v2, p0 aput-char v2, p3, v1 add-int/lit8 p2, p2, -0x2 .line 1016 sget-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DigitTens:[C aget-char p0, v1, p0 aput-char p0, p3, p2 move p0, p1 goto :goto_36 :cond_57 :goto_57 const p1, 0xcccd mul-int/2addr p1, p0 ushr-int/lit8 p1, p1, 0x13 shl-int/lit8 v1, p1, 0x3 shl-int/lit8 v2, p1, 0x1 add-int/2addr v1, v2 sub-int/2addr p0, v1 add-int/lit8 v1, p2, -0x1 .line 1024 sget-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->digits:[C aget-char p0, v2, p0 aput-char p0, p3, v1 if-nez p1, :cond_74 if-eqz v0, :cond_73 add-int/lit8 p2, p2, -0x2 .line 1029 aput-char v0, p3, p2 :cond_73 return-void :cond_74 move p0, p1 move p2, v1 goto :goto_57 .end method .method private writeKeyWithDoubleQuoteIfHasSpecial(Ljava/lang/String;)V .registers 16 .line 774 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 .line 775 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v1, v0 const/4 v2, 0x1 add-int/2addr v1, v2 .line 776 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 const/16 v4, 0x5c const/16 v5, 0x3a const/4 v6, 0x0 const/16 v7, 0x22 if-le v1, v3, :cond_6b .line 777 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v3, :cond_68 if-nez v0, :cond_25 .line 779 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 780 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 781 invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void :cond_25 move v1, v6 :goto_26 if-ge v1, v0, :cond_39 .line 787 invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C move-result v3 .line 788 sget-object v8, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B array-length v9, v8 if-ge v3, v9, :cond_36 aget-byte v3, v8, v3 if-eqz v3, :cond_36 goto :goto_3a :cond_36 add-int/lit8 v1, v1, 0x1 goto :goto_26 :cond_39 move v2, v6 :goto_3a if-eqz v2, :cond_3f .line 795 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_3f :goto_3f if-ge v6, v0, :cond_5f .line 798 invoke-virtual {p1, v6}, Ljava/lang/String;->charAt(I)C move-result v1 .line 799 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B array-length v8, v3 if-ge v1, v8, :cond_59 aget-byte v3, v3, v1 if-eqz v3, :cond_59 .line 800 invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 801 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v1, v3, v1 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_5c .line 803 :cond_59 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_5c add-int/lit8 v6, v6, 0x1 goto :goto_3f :cond_5f if-eqz v2, :cond_64 .line 807 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 809 :cond_64 invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 812 :cond_68 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V :cond_6b if-nez v0, :cond_92 .line 816 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v0, p1, 0x3 .line 817 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v0, v1, :cond_7b add-int/lit8 p1, p1, 0x3 .line 818 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 820 :cond_7b iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v1, v0, 0x1 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v7, p1, v0 add-int/lit8 v2, v0, 0x2 .line 821 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v7, p1, v1 add-int/lit8 v0, v0, 0x3 .line 822 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v5, p1, v2 return-void .line 826 :cond_92 iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int v8, v3, v0 .line 829 iget-object v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {p1, v6, v0, v9, v3}, Ljava/lang/String;->getChars(II[CI)V .line 830 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I move p1, v3 move v0, v6 :goto_9f if-ge p1, v8, :cond_107 .line 835 iget-object v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v10, v9, p1 .line 836 sget-object v11, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B array-length v12, v11 if-ge v10, v12, :cond_105 aget-byte v11, v11, v10 if-eqz v11, :cond_105 if-nez v0, :cond_e3 add-int/lit8 v1, v1, 0x3 .line 839 array-length v0, v9 if-le v1, v0, :cond_b8 .line 840 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 842 :cond_b8 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 844 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v9, p1, 0x1 add-int/lit8 v11, p1, 0x3 sub-int v12, v8, p1 sub-int/2addr v12, v2 invoke-static {v0, v9, v0, v11, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 845 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v0, v6, v0, v2, p1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 846 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v7, v0, v3 .line 847 aput-char v4, v0, v9 add-int/lit8 p1, p1, 0x2 .line 848 sget-object v9, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v9, v9, v10 aput-char v9, v0, p1 add-int/lit8 v8, v8, 0x2 .line 850 iget v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v9, v9, -0x2 aput-char v7, v0, v9 move v0, v2 goto :goto_105 :cond_e3 add-int/lit8 v1, v1, 0x1 .line 855 array-length v9, v9 if-le v1, v9, :cond_eb .line 856 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 858 :cond_eb iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 860 iget-object v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, p1, 0x1 add-int/lit8 v12, p1, 0x2 sub-int v13, v8, p1 invoke-static {v9, v11, v9, v12, v13}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 861 iget-object v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v4, v9, p1 .line 862 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char p1, p1, v10 aput-char p1, v9, v11 add-int/lit8 v8, v8, 0x1 move p1, v11 :cond_105 :goto_105 add-int/2addr p1, v2 goto :goto_9f .line 868 :cond_107 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v0, v2 aput-char v5, p1, v0 return-void .end method .method private writeKeyWithSingleQuoteIfHasSpecial(Ljava/lang/String;)V .registers 16 .line 872 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 .line 873 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v1, v0 const/4 v2, 0x1 add-int/2addr v1, v2 .line 874 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 const/16 v4, 0x5c const/16 v5, 0x3a const/4 v6, 0x0 const/16 v7, 0x27 if-le v1, v3, :cond_6b .line 875 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v3, :cond_68 if-nez v0, :cond_25 .line 877 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 878 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 879 invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void :cond_25 move v1, v6 :goto_26 if-ge v1, v0, :cond_39 .line 885 invoke-virtual {p1, v1}, Ljava/lang/String;->charAt(I)C move-result v3 .line 886 sget-object v8, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_singleQuotes:[B array-length v9, v8 if-ge v3, v9, :cond_36 aget-byte v3, v8, v3 if-eqz v3, :cond_36 goto :goto_3a :cond_36 add-int/lit8 v1, v1, 0x1 goto :goto_26 :cond_39 move v2, v6 :goto_3a if-eqz v2, :cond_3f .line 893 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_3f :goto_3f if-ge v6, v0, :cond_5f .line 896 invoke-virtual {p1, v6}, Ljava/lang/String;->charAt(I)C move-result v1 .line 897 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_singleQuotes:[B array-length v8, v3 if-ge v1, v8, :cond_59 aget-byte v3, v3, v1 if-eqz v3, :cond_59 .line 898 invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 899 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v1, v3, v1 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_5c .line 901 :cond_59 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_5c add-int/lit8 v6, v6, 0x1 goto :goto_3f :cond_5f if-eqz v2, :cond_64 .line 905 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 907 :cond_64 invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 911 :cond_68 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V :cond_6b if-nez v0, :cond_92 .line 915 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v0, p1, 0x3 .line 916 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v0, v1, :cond_7b add-int/lit8 p1, p1, 0x3 .line 917 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 919 :cond_7b iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v1, v0, 0x1 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v7, p1, v0 add-int/lit8 v2, v0, 0x2 .line 920 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v7, p1, v1 add-int/lit8 v0, v0, 0x3 .line 921 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v5, p1, v2 return-void .line 925 :cond_92 iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int v8, v3, v0 .line 928 iget-object v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {p1, v6, v0, v9, v3}, Ljava/lang/String;->getChars(II[CI)V .line 929 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I move p1, v3 move v0, v6 :goto_9f if-ge p1, v8, :cond_107 .line 934 iget-object v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v10, v9, p1 .line 935 sget-object v11, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_singleQuotes:[B array-length v12, v11 if-ge v10, v12, :cond_105 aget-byte v11, v11, v10 if-eqz v11, :cond_105 if-nez v0, :cond_e3 add-int/lit8 v1, v1, 0x3 .line 938 array-length v0, v9 if-le v1, v0, :cond_b8 .line 939 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 941 :cond_b8 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 943 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v9, p1, 0x1 add-int/lit8 v11, p1, 0x3 sub-int v12, v8, p1 sub-int/2addr v12, v2 invoke-static {v0, v9, v0, v11, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 944 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v0, v6, v0, v2, p1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 945 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v7, v0, v3 .line 946 aput-char v4, v0, v9 add-int/lit8 p1, p1, 0x2 .line 947 sget-object v9, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v9, v9, v10 aput-char v9, v0, p1 add-int/lit8 v8, v8, 0x2 .line 949 iget v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v9, v9, -0x2 aput-char v7, v0, v9 move v0, v2 goto :goto_105 :cond_e3 add-int/lit8 v1, v1, 0x1 .line 954 array-length v9, v9 if-le v1, v9, :cond_eb .line 955 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 957 :cond_eb iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 959 iget-object v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, p1, 0x1 add-int/lit8 v12, p1, 0x2 sub-int v13, v8, p1 invoke-static {v9, v11, v9, v12, v13}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 960 iget-object v9, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v4, v9, p1 .line 961 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char p1, p1, v10 aput-char p1, v9, v11 add-int/lit8 v8, v8, 0x1 move p1, v11 :cond_105 :goto_105 add-int/2addr p1, v2 goto :goto_9f .line 967 :cond_107 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sub-int/2addr v1, v2 aput-char v5, p1, v1 return-void .end method # virtual methods .method public append(C)Lcom/alibaba/fastjson/serializer/SerializeWriter; .registers 2 .line 244 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-object p0 .end method .method public append(Ljava/lang/CharSequence;)Lcom/alibaba/fastjson/serializer/SerializeWriter; .registers 4 if-nez p1, :cond_5 .line 232 const-string p1, "null" goto :goto_9 :cond_5 invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object p1 :goto_9 const/4 v0, 0x0 .line 233 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 invoke-virtual {p0, p1, v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;II)V return-object p0 .end method .method public append(Ljava/lang/CharSequence;II)Lcom/alibaba/fastjson/serializer/SerializeWriter; .registers 4 if-nez p1, :cond_4 .line 238 const-string p1, "null" :cond_4 invoke-interface {p1, p2, p3}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence; move-result-object p1 invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object p1 const/4 p2, 0x0 .line 239 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p3 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;II)V return-object p0 .end method .method public bridge synthetic append(C)Ljava/io/Writer; .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 31 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->append(C)Lcom/alibaba/fastjson/serializer/SerializeWriter; move-result-object p1 return-object p1 .end method .method public bridge synthetic append(Ljava/lang/CharSequence;)Ljava/io/Writer; .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 31 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->append(Ljava/lang/CharSequence;)Lcom/alibaba/fastjson/serializer/SerializeWriter; move-result-object p1 return-object p1 .end method .method public bridge synthetic append(Ljava/lang/CharSequence;II)Ljava/io/Writer; .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 31 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->append(Ljava/lang/CharSequence;II)Lcom/alibaba/fastjson/serializer/SerializeWriter; move-result-object p1 return-object p1 .end method .method public bridge synthetic append(C)Ljava/lang/Appendable; .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 31 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->append(C)Lcom/alibaba/fastjson/serializer/SerializeWriter; move-result-object p1 return-object p1 .end method .method public bridge synthetic append(Ljava/lang/CharSequence;)Ljava/lang/Appendable; .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 31 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->append(Ljava/lang/CharSequence;)Lcom/alibaba/fastjson/serializer/SerializeWriter; move-result-object p1 return-object p1 .end method .method public bridge synthetic append(Ljava/lang/CharSequence;II)Ljava/lang/Appendable; .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 31 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->append(Ljava/lang/CharSequence;II)Lcom/alibaba/fastjson/serializer/SerializeWriter; move-result-object p1 return-object p1 .end method .method public close()V .registers 4 .line 273 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v0, :cond_b iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I if-lez v0, :cond_b .line 274 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V .line 276 :cond_b iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v0 const/16 v2, 0x2000 if-gt v1, v2, :cond_17 .line 277 sget-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocal:Ljava/lang/ThreadLocal; invoke-virtual {v1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V :cond_17 const/4 v0, 0x0 .line 280 iput-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C return-void .end method .method public config(Lcom/alibaba/fastjson/serializer/SerializerFeature;Z)V .registers 3 if-eqz p2, :cond_a .line 102 iget p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I iget p1, p1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I or-int/2addr p1, p2 iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I goto :goto_12 .line 104 :cond_a iget p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I iget p1, p1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I not-int p1, p1 and-int/2addr p1, p2 iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I :goto_12 return-void .end method .method protected expandCapacity(I)V .registers 5 .line 168 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v0 mul-int/lit8 v1, v1, 0x3 div-int/lit8 v1, v1, 0x2 add-int/lit8 v1, v1, 0x1 if-ge v1, p1, :cond_c goto :goto_d :cond_c move p1, v1 .line 173 :goto_d new-array p1, p1, [C .line 174 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v2, 0x0 invoke-static {v0, v2, p1, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 175 iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C return-void .end method .method public flush()V .registers 5 .line 971 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_5 return-void .line 976 :cond_5 :try_start_5 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v3, 0x0 invoke-virtual {v0, v1, v3, v2}, Ljava/io/Writer;->write([CII)V .line 977 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; invoke-virtual {v0}, Ljava/io/Writer;->flush()V .line 978 iput v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I :try_end_14 .catch Ljava/io/IOException; {:try_start_5 .. :try_end_14} :catch_15 return-void :catch_15 move-exception v0 .line 980 new-instance v1, Lcom/alibaba/fastjson/JSONException; invoke-virtual {v0}, Ljava/io/IOException;->getMessage()Ljava/lang/String; move-result-object v2 invoke-direct {v1, v2, v0}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v1 .end method .method public isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z .registers 3 .line 109 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I iget p1, p1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->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 toBytes(Ljava/lang/String;)[B .registers 6 .line 249 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_20 if-nez p1, :cond_8 .line 254 const-string p1, "UTF-8" .line 258 :cond_8 :try_start_8 new-instance v0, Ljava/lang/String; iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v3, 0x0 invoke-direct {v0, v1, v3, v2}, Ljava/lang/String;->([CII)V invoke-virtual {v0, p1}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B move-result-object p1 :try_end_16 .catch Ljava/io/UnsupportedEncodingException; {:try_start_8 .. :try_end_16} :catch_17 return-object p1 :catch_17 move-exception p1 .line 260 new-instance v0, Lcom/alibaba/fastjson/JSONException; const-string v1, "toBytes error" invoke-direct {v0, v1, p1}, Lcom/alibaba/fastjson/JSONException;->(Ljava/lang/String;Ljava/lang/Throwable;)V throw v0 .line 250 :cond_20 new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "writer not null" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method public toString()Ljava/lang/String; .registers 5 .line 265 new-instance v0, Ljava/lang/String; iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C const/4 v2, 0x0 iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;->([CII)V return-object v0 .end method .method public write(I)V .registers 5 .line 116 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v1, 0x1 add-int/2addr v0, v1 .line 117 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v2, v2 if-le v0, v2, :cond_15 .line 118 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v2, :cond_11 .line 119 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_15 .line 121 :cond_11 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V goto :goto_16 :cond_15 :goto_15 move v1, v0 .line 125 :goto_16 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I int-to-char p1, p1 aput-char p1, v0, v2 .line 126 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public write(Ljava/lang/String;)V .registers 4 if-nez p1, :cond_6 .line 285 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V return-void :cond_6 const/4 v0, 0x0 .line 289 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 invoke-virtual {p0, p1, v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;II)V return-void .end method .method public write(Ljava/lang/String;II)V .registers 8 .line 186 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v0, p3 .line 187 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v0, v1, :cond_2e .line 188 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v1, :cond_10 .line 189 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_2e .line 192 :cond_10 :goto_10 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v0 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v1, v2 add-int v3, p2, v1 .line 193 invoke-virtual {p1, p2, v3, v0, v2}, Ljava/lang/String;->getChars(II[CI)V .line 194 iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length p2, p2 iput p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 195 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V sub-int/2addr p3, v1 .line 198 iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length p2, p2 if-gt p3, p2, :cond_2c move v0, p3 move p2, v3 goto :goto_2e :cond_2c move p2, v3 goto :goto_10 :cond_2e :goto_2e add-int/2addr p3, p2 .line 202 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I invoke-virtual {p1, p2, p3, v1, v2}, Ljava/lang/String;->getChars(II[CI)V .line 203 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public write(Z)V .registers 2 if-eqz p1, :cond_5 .line 662 const-string p1, "true" goto :goto_7 :cond_5 const-string p1, "false" :goto_7 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void .end method .method public write([CII)V .registers 7 if-ltz p2, :cond_44 .line 137 array-length v0, p1 if-gt p2, v0, :cond_44 if-ltz p3, :cond_44 add-int v0, p2, p3 array-length v1, p1 if-gt v0, v1, :cond_44 if-ltz v0, :cond_44 if-nez p3, :cond_11 return-void .line 147 :cond_11 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v0, p3 .line 148 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v0, v1, :cond_3a .line 149 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v1, :cond_21 .line 150 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_3a .line 153 :cond_21 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v0 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v1, v2 .line 154 invoke-static {p1, p2, v0, v2, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 155 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 156 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V sub-int/2addr p3, v1 add-int/2addr p2, v1 .line 159 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 if-gt p3, v0, :cond_21 move v0, p3 .line 163 :cond_3a :goto_3a iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I invoke-static {p1, p2, v1, v2, p3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 164 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .line 142 :cond_44 new-instance p1, Ljava/lang/IndexOutOfBoundsException; invoke-direct {p1}, Ljava/lang/IndexOutOfBoundsException;->()V throw p1 .end method .method public writeByteArray([B)V .registers 21 move-object/from16 v0, p0 move-object/from16 v1, p1 .line 328 array-length v2, v1 .line 330 iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v4, Lcom/alibaba/fastjson/serializer/SerializerFeature;->UseSingleQuotes:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v4, v4, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v3, v4 const/4 v4, 0x0 const/4 v5, 0x1 if-eqz v3, :cond_12 move v3, v5 goto :goto_13 :cond_12 move v3, v4 :goto_13 if-eqz v3, :cond_18 const/16 v6, 0x27 goto :goto_1a :cond_18 const/16 v6, 0x22 :goto_1a if-nez v2, :cond_27 if-eqz v3, :cond_21 .line 334 const-string v1, "\'\'" goto :goto_23 :cond_21 const-string v1, "\"\"" .line 335 :goto_23 invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void .line 339 :cond_27 sget-object v3, Lcom/alibaba/fastjson/parser/JSONLexer;->CA:[C .line 341 div-int/lit8 v7, v2, 0x3 mul-int/lit8 v7, v7, 0x3 add-int/lit8 v8, v2, -0x1 .line 342 div-int/lit8 v9, v8, 0x3 add-int/2addr v9, v5 const/4 v10, 0x2 shl-int/2addr v9, v10 .line 344 iget v11, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v9, v11 add-int/lit8 v12, v9, 0x2 .line 346 iget-object v13, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v13, v13 const/16 v14, 0x3d if-le v12, v13, :cond_bd .line 347 iget-object v13, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v13, :cond_ba .line 348 invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V move v5, v4 :goto_48 if-ge v5, v7, :cond_85 add-int/lit8 v9, v5, 0x1 .line 352 aget-byte v11, v1, v5 and-int/lit16 v11, v11, 0xff shl-int/lit8 v11, v11, 0x10 add-int/lit8 v12, v5, 0x2 aget-byte v9, v1, v9 and-int/lit16 v9, v9, 0xff shl-int/lit8 v9, v9, 0x8 or-int/2addr v9, v11 add-int/lit8 v5, v5, 0x3 aget-byte v11, v1, v12 and-int/lit16 v11, v11, 0xff or-int/2addr v9, v11 ushr-int/lit8 v11, v9, 0x12 and-int/lit8 v11, v11, 0x3f .line 355 aget-char v11, v3, v11 invoke-virtual {v0, v11}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V ushr-int/lit8 v11, v9, 0xc and-int/lit8 v11, v11, 0x3f .line 356 aget-char v11, v3, v11 invoke-virtual {v0, v11}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V ushr-int/lit8 v11, v9, 0x6 and-int/lit8 v11, v11, 0x3f .line 357 aget-char v11, v3, v11 invoke-virtual {v0, v11}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V and-int/lit8 v9, v9, 0x3f .line 358 aget-char v9, v3, v9 invoke-virtual {v0, v9}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_48 :cond_85 sub-int/2addr v2, v7 if-lez v2, :cond_b6 .line 365 aget-byte v5, v1, v7 and-int/lit16 v5, v5, 0xff shl-int/lit8 v5, v5, 0xa if-ne v2, v10, :cond_96 aget-byte v1, v1, v8 and-int/lit16 v1, v1, 0xff shl-int/lit8 v4, v1, 0x2 :cond_96 or-int v1, v5, v4 shr-int/lit8 v4, v1, 0xc .line 368 aget-char v4, v3, v4 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V ushr-int/lit8 v4, v1, 0x6 and-int/lit8 v4, v4, 0x3f .line 369 aget-char v4, v3, v4 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V if-ne v2, v10, :cond_af and-int/lit8 v1, v1, 0x3f .line 370 aget-char v1, v3, v1 goto :goto_b0 :cond_af move v1, v14 :goto_b0 invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 371 invoke-virtual {v0, v14}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 374 :cond_b6 invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 377 :cond_ba invoke-virtual {v0, v12}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 379 :cond_bd iput v12, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 380 iget-object v12, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v13, v11, 0x1 aput-char v6, v12, v11 move v11, v4 :goto_c6 if-ge v11, v7, :cond_109 add-int/lit8 v12, v11, 0x1 .line 385 aget-byte v15, v1, v11 and-int/lit16 v15, v15, 0xff shl-int/lit8 v15, v15, 0x10 add-int/lit8 v16, v11, 0x2 aget-byte v12, v1, v12 and-int/lit16 v12, v12, 0xff shl-int/lit8 v12, v12, 0x8 or-int/2addr v12, v15 add-int/lit8 v11, v11, 0x3 aget-byte v15, v1, v16 and-int/lit16 v15, v15, 0xff or-int/2addr v12, v15 .line 388 iget-object v15, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v16, v13, 0x1 ushr-int/lit8 v17, v12, 0x12 and-int/lit8 v17, v17, 0x3f aget-char v17, v3, v17 aput-char v17, v15, v13 add-int/lit8 v17, v13, 0x2 ushr-int/lit8 v18, v12, 0xc and-int/lit8 v18, v18, 0x3f .line 389 aget-char v18, v3, v18 aput-char v18, v15, v16 add-int/lit8 v16, v13, 0x3 ushr-int/lit8 v18, v12, 0x6 and-int/lit8 v18, v18, 0x3f .line 390 aget-char v18, v3, v18 aput-char v18, v15, v17 add-int/lit8 v13, v13, 0x4 and-int/lit8 v12, v12, 0x3f .line 391 aget-char v12, v3, v12 aput-char v12, v15, v16 goto :goto_c6 :cond_109 sub-int/2addr v2, v7 if-lez v2, :cond_13e .line 398 aget-byte v7, v1, v7 and-int/lit16 v7, v7, 0xff shl-int/lit8 v7, v7, 0xa if-ne v2, v10, :cond_11a aget-byte v1, v1, v8 and-int/lit16 v1, v1, 0xff shl-int/lit8 v4, v1, 0x2 :cond_11a or-int v1, v7, v4 .line 401 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v9, -0x3 shr-int/lit8 v8, v1, 0xc aget-char v8, v3, v8 aput-char v8, v4, v7 add-int/lit8 v7, v9, -0x2 ushr-int/lit8 v8, v1, 0x6 and-int/lit8 v8, v8, 0x3f .line 402 aget-char v8, v3, v8 aput-char v8, v4, v7 add-int/lit8 v7, v9, -0x1 if-ne v2, v10, :cond_139 and-int/lit8 v1, v1, 0x3f .line 403 aget-char v1, v3, v1 goto :goto_13a :cond_139 move v1, v14 :goto_13a aput-char v1, v4, v7 .line 404 aput-char v14, v4, v9 .line 406 :cond_13e iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v9, v5 aput-char v6, v1, v9 return-void .end method .method public writeFieldName(Ljava/lang/String;Z)V .registers 6 .line 757 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->UseSingleQuotes:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v1, v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v1 const/16 v1, 0x3a if-eqz v0, :cond_1f .line 758 iget p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->QuoteFieldNames:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v0, v0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr p2, v0 if-eqz p2, :cond_1b .line 759 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithSingleQuote(Ljava/lang/String;)V .line 760 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_2f .line 762 :cond_1b invoke-direct {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeKeyWithSingleQuoteIfHasSpecial(Ljava/lang/String;)V goto :goto_2f .line 765 :cond_1f iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v2, Lcom/alibaba/fastjson/serializer/SerializerFeature;->QuoteFieldNames:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v2, v2, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v2 if-eqz v0, :cond_2c .line 766 invoke-virtual {p0, p1, v1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;CZ)V goto :goto_2f .line 768 :cond_2c invoke-direct {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeKeyWithDoubleQuoteIfHasSpecial(Ljava/lang/String;)V :goto_2f return-void .end method .method public writeInt(I)V .registers 7 const/high16 v0, -0x80000000 if-ne p1, v0, :cond_a .line 294 const-string p1, "-2147483648" invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void :cond_a if-gez p1, :cond_e neg-int v0, p1 goto :goto_f :cond_e move v0, p1 :goto_f const/4 v1, 0x0 move v2, v1 .line 301 :goto_11 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->sizeTable:[I aget v3, v3, v2 if-gt v0, v3, :cond_40 add-int/lit8 v0, v2, 0x1 if-gez p1, :cond_1d add-int/lit8 v0, v2, 0x2 .line 310 :cond_1d iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v2, v0 .line 311 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 if-le v2, v3, :cond_37 .line 312 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v3, :cond_2d .line 313 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_37 .line 315 :cond_2d new-array v2, v0, [C int-to-long v3, p1 .line 316 invoke-static {v3, v4, v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->getChars(JI[C)V .line 317 invoke-virtual {p0, v2, v1, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write([CII)V return-void :cond_37 :goto_37 int-to-long v0, p1 .line 322 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v0, v1, v2, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->getChars(JI[C)V .line 324 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void :cond_40 add-int/lit8 v2, v2, 0x1 goto :goto_11 .end method .method public writeLong(J)V .registers 14 const-wide/high16 v0, -0x8000000000000000L cmp-long v0, p1, v0 if-nez v0, :cond_c .line 411 const-string p1, "-9223372036854775808" invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void :cond_c const-wide/16 v0, 0x0 cmp-long v0, p1, v0 if-gez v0, :cond_14 neg-long v1, p1 goto :goto_15 :cond_14 move-wide v1, p1 :goto_15 const-wide/16 v3, 0xa const/4 v5, 0x1 move-wide v6, v3 :goto_19 const/16 v8, 0x13 const/4 v9, 0x0 if-ge v5, v8, :cond_27 cmp-long v10, v1, v6 if-gez v10, :cond_23 goto :goto_28 :cond_23 mul-long/2addr v6, v3 add-int/lit8 v5, v5, 0x1 goto :goto_19 :cond_27 move v5, v9 :goto_28 if-nez v5, :cond_2b goto :goto_2c :cond_2b move v8, v5 :goto_2c if-gez v0, :cond_30 add-int/lit8 v8, v8, 0x1 .line 433 :cond_30 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v0, v8 .line 434 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v0, v1, :cond_49 .line 435 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v1, :cond_40 .line 436 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_49 .line 438 :cond_40 new-array v0, v8, [C .line 439 invoke-static {p1, p2, v8, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->getChars(JI[C)V .line 440 invoke-virtual {p0, v0, v9, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write([CII)V return-void .line 445 :cond_49 :goto_49 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p1, p2, v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->getChars(JI[C)V .line 447 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public writeNull()V .registers 2 .line 451 const-string v0, "null" invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void .end method .method public writeString(Ljava/lang/String;)V .registers 4 .line 666 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->UseSingleQuotes:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v1, v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v1 if-eqz v0, :cond_d .line 667 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithSingleQuote(Ljava/lang/String;)V goto :goto_12 :cond_d const/4 v0, 0x0 const/4 v1, 0x1 .line 669 invoke-virtual {p0, p1, v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;CZ)V :goto_12 return-void .end method .method protected writeStringWithDoubleQuote(Ljava/lang/String;CZ)V .registers 20 move-object/from16 v0, p0 move-object/from16 v1, p1 move/from16 v2, p2 if-nez v1, :cond_11 .line 456 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V if-eqz v2, :cond_10 .line 458 invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_10 return-void .line 463 :cond_11 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v3 .line 464 iget v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v4, v3 add-int/lit8 v5, v4, 0x2 if-eqz v2, :cond_1e add-int/lit8 v5, v4, 0x3 .line 469 :cond_1e iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v4, v4 const/16 v6, 0x2f const/4 v7, 0x0 const/16 v8, 0x22 const/16 v9, 0x5c if-le v5, v4, :cond_6c .line 470 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v4, :cond_69 .line 471 invoke-virtual {v0, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 473 :goto_31 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v3 if-ge v7, v3, :cond_60 .line 474 invoke-virtual {v1, v7}, Ljava/lang/String;->charAt(I)C move-result v3 .line 476 sget-object v4, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B array-length v5, v4 if-ge v3, v5, :cond_44 aget-byte v4, v4, v3 if-nez v4, :cond_4f :cond_44 if-ne v3, v6, :cond_5a iget v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v5, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v5, v5, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v4, v5 if-eqz v4, :cond_5a .line 479 :cond_4f invoke-virtual {v0, v9}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 480 sget-object v4, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_5d .line 484 :cond_5a invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_5d add-int/lit8 v7, v7, 0x1 goto :goto_31 .line 487 :cond_60 invoke-virtual {v0, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V if-eqz v2, :cond_68 .line 489 invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_68 return-void .line 493 :cond_69 invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 496 :cond_6c iget v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v10, v4, 0x1 add-int v11, v10, v3 .line 499 iget-object v12, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v8, v12, v4 .line 500 invoke-virtual {v1, v7, v3, v12, v10}, Ljava/lang/String;->getChars(II[CI)V .line 502 iput v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I if-eqz p3, :cond_22d const/4 v4, -0x1 move v14, v4 move v15, v14 move v12, v7 move v13, v10 :goto_82 const/16 v3, 0x2028 if-ge v13, v11, :cond_e7 .line 510 iget-object v8, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v8, v8, v13 if-ne v8, v3, :cond_99 add-int/lit8 v7, v7, 0x1 add-int/lit8 v5, v5, 0x4 if-ne v14, v4, :cond_96 :goto_92 move v12, v8 move v14, v13 move v15, v14 goto :goto_e0 :cond_96 :goto_96 move v12, v8 move v15, v13 goto :goto_e0 :cond_99 const/16 v3, 0x5d if-lt v8, v3, :cond_ad const/16 v3, 0x7f if-lt v8, v3, :cond_e0 const/16 v3, 0xa0 if-ge v8, v3, :cond_e0 if-ne v14, v4, :cond_a8 move v14, v13 :cond_a8 add-int/lit8 v7, v7, 0x1 add-int/lit8 v5, v5, 0x4 goto :goto_96 :cond_ad const/16 v3, 0x20 if-ne v8, v3, :cond_b2 goto :goto_e0 :cond_b2 if-ne v8, v6, :cond_be .line 542 iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v6, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v6, v6, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v3, v6 if-eqz v3, :cond_be goto :goto_cf :cond_be const/16 v3, 0x23 if-le v8, v3, :cond_c5 if-eq v8, v9, :cond_c5 goto :goto_e0 :cond_c5 const/16 v3, 0x1f if-le v8, v3, :cond_cf if-eq v8, v9, :cond_cf const/16 v3, 0x22 if-ne v8, v3, :cond_e0 :cond_cf :goto_cf add-int/lit8 v7, v7, 0x1 .line 558 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B array-length v6, v3 if-ge v8, v6, :cond_dd aget-byte v3, v3, v8 const/4 v6, 0x4 if-ne v3, v6, :cond_dd add-int/lit8 v5, v5, 0x4 :cond_dd if-ne v14, v4, :cond_96 goto :goto_92 :cond_e0 :goto_e0 add-int/lit8 v13, v13, 0x1 const/16 v6, 0x2f const/16 v8, 0x22 goto :goto_82 :cond_e7 if-lez v7, :cond_22d add-int/2addr v5, v7 .line 572 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v4, v4 if-le v5, v4, :cond_f2 .line 573 invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 575 :cond_f2 iput v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/16 v4, 0x75 const/4 v5, 0x1 if-ne v7, v5, :cond_183 if-ne v12, v3, :cond_124 add-int/lit8 v1, v15, 0x1 add-int/lit8 v3, v15, 0x6 sub-int/2addr v11, v15 sub-int/2addr v11, v5 .line 582 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v5, v1, v5, v3, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 583 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v15 .line 584 aput-char v4, v3, v1 add-int/lit8 v1, v15, 0x2 const/16 v4, 0x32 .line 585 aput-char v4, v3, v1 add-int/lit8 v1, v15, 0x3 const/16 v5, 0x30 .line 586 aput-char v5, v3, v1 add-int/lit8 v1, v15, 0x4 .line 587 aput-char v4, v3, v1 add-int/lit8 v15, v15, 0x5 const/16 v1, 0x38 .line 588 aput-char v1, v3, v15 goto/16 :goto_22d .line 591 :cond_124 sget-object v1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B array-length v3, v1 if-ge v12, v3, :cond_16b aget-byte v1, v1, v12 const/4 v3, 0x4 if-ne v1, v3, :cond_16b add-int/lit8 v1, v15, 0x1 add-int/lit8 v3, v15, 0x6 sub-int/2addr v11, v15 const/4 v5, 0x1 sub-int/2addr v11, v5 .line 596 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v5, v1, v5, v3, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 599 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v15 add-int/lit8 v5, v15, 0x2 .line 600 aput-char v4, v3, v1 add-int/lit8 v1, v15, 0x3 .line 601 sget-object v4, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DIGITS:[C ushr-int/lit8 v6, v12, 0xc and-int/lit8 v6, v6, 0xf aget-char v6, v4, v6 aput-char v6, v3, v5 add-int/lit8 v5, v15, 0x4 ushr-int/lit8 v6, v12, 0x8 and-int/lit8 v6, v6, 0xf .line 602 aget-char v6, v4, v6 aput-char v6, v3, v1 add-int/lit8 v15, v15, 0x5 ushr-int/lit8 v1, v12, 0x4 and-int/lit8 v1, v1, 0xf .line 603 aget-char v1, v4, v1 aput-char v1, v3, v5 and-int/lit8 v1, v12, 0xf .line 604 aget-char v1, v4, v1 aput-char v1, v3, v15 const/4 v5, 0x1 goto/16 :goto_22d :cond_16b add-int/lit8 v1, v15, 0x1 add-int/lit8 v3, v15, 0x2 sub-int/2addr v11, v15 const/4 v5, 0x1 sub-int/2addr v11, v5 .line 609 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v4, v1, v4, v3, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 610 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v15 .line 611 sget-object v4, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v4, v4, v12 aput-char v4, v3, v1 goto/16 :goto_22d :cond_183 if-le v7, v5, :cond_22d sub-int v5, v14, v10 .line 617 :goto_187 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v6 if-ge v5, v6, :cond_22d .line 618 invoke-virtual {v1, v5}, Ljava/lang/String;->charAt(I)C move-result v6 .line 620 sget-object v7, Lcom/alibaba/fastjson/serializer/SerializeWriter;->specicalFlags_doubleQuotes:[B array-length v8, v7 if-ge v6, v8, :cond_19e aget-byte v8, v7, v6 if-nez v8, :cond_19b goto :goto_19e :cond_19b const/16 v8, 0x2f goto :goto_1ab :cond_19e :goto_19e const/16 v8, 0x2f if-ne v6, v8, :cond_1ec iget v10, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v11, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v11, v11, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v10, v11 if-eqz v10, :cond_1ec .line 623 :goto_1ab iget-object v10, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v14, 0x1 aput-char v9, v10, v14 .line 624 aget-byte v7, v7, v6 const/4 v12, 0x4 if-ne v7, v12, :cond_1e3 add-int/lit8 v7, v14, 0x2 .line 625 aput-char v4, v10, v11 add-int/lit8 v11, v14, 0x3 .line 626 sget-object v13, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DIGITS:[C ushr-int/lit8 v15, v6, 0xc and-int/lit8 v15, v15, 0xf aget-char v15, v13, v15 aput-char v15, v10, v7 add-int/lit8 v7, v14, 0x4 ushr-int/lit8 v15, v6, 0x8 and-int/lit8 v15, v15, 0xf .line 627 aget-char v15, v13, v15 aput-char v15, v10, v11 add-int/lit8 v11, v14, 0x5 ushr-int/lit8 v15, v6, 0x4 and-int/lit8 v15, v15, 0xf .line 628 aget-char v15, v13, v15 aput-char v15, v10, v7 add-int/lit8 v14, v14, 0x6 and-int/lit8 v6, v6, 0xf .line 629 aget-char v6, v13, v6 aput-char v6, v10, v11 goto :goto_229 :cond_1e3 add-int/lit8 v14, v14, 0x2 .line 632 sget-object v7, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v6, v7, v6 aput-char v6, v10, v11 goto :goto_229 :cond_1ec const/4 v12, 0x4 if-ne v6, v3, :cond_222 .line 637 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v10, v14, 0x1 aput-char v9, v7, v14 add-int/lit8 v11, v14, 0x2 .line 638 aput-char v4, v7, v10 add-int/lit8 v10, v14, 0x3 .line 639 sget-object v13, Lcom/alibaba/fastjson/serializer/SerializeWriter;->DIGITS:[C ushr-int/lit8 v15, v6, 0xc and-int/lit8 v15, v15, 0xf aget-char v15, v13, v15 aput-char v15, v7, v11 add-int/lit8 v11, v14, 0x4 ushr-int/lit8 v15, v6, 0x8 and-int/lit8 v15, v15, 0xf .line 640 aget-char v15, v13, v15 aput-char v15, v7, v10 add-int/lit8 v10, v14, 0x5 ushr-int/lit8 v15, v6, 0x4 and-int/lit8 v15, v15, 0xf .line 641 aget-char v15, v13, v15 aput-char v15, v7, v11 add-int/lit8 v14, v14, 0x6 and-int/lit8 v6, v6, 0xf .line 642 aget-char v6, v13, v6 aput-char v6, v7, v10 goto :goto_229 .line 645 :cond_222 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v10, v14, 0x1 aput-char v6, v7, v14 move v14, v10 :goto_229 add-int/lit8 v5, v5, 0x1 goto/16 :goto_187 :cond_22d :goto_22d if-eqz v2, :cond_23e .line 654 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v4, v3, -0x2 const/16 v5, 0x22 aput-char v5, v1, v4 const/4 v4, 0x1 sub-int/2addr v3, v4 .line 655 aput-char v2, v1, v3 goto :goto_248 :cond_23e const/4 v4, 0x1 const/16 v5, 0x22 .line 657 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v2, v4 aput-char v5, v1, v2 :goto_248 return-void .end method .method protected writeStringWithSingleQuote(Ljava/lang/String;)V .registers 16 const/4 v0, 0x0 if-nez p1, :cond_1b .line 675 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v1, 0x4 add-int/2addr p1, v1 .line 676 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v2, v2 if-le p1, v2, :cond_f .line 677 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 679 :cond_f iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const-string v4, "null" invoke-virtual {v4, v0, v1, v2, v3}, Ljava/lang/String;->getChars(II[CI)V .line 680 iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .line 684 :cond_1b invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 .line 685 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v2, v1 add-int/lit8 v2, v2, 0x2 .line 686 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 const/16 v4, 0x2f const/16 v5, 0xd const/16 v6, 0x5c const/16 v7, 0x27 if-le v2, v3, :cond_6c .line 687 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v3, :cond_69 .line 688 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 689 :goto_38 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 if-ge v0, v1, :cond_65 .line 690 invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C move-result v1 if-le v1, v5, :cond_58 if-eq v1, v6, :cond_58 if-eq v1, v7, :cond_58 if-ne v1, v4, :cond_54 .line 691 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v2, v3 if-eqz v2, :cond_54 goto :goto_58 .line 696 :cond_54 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_62 .line 693 :cond_58 :goto_58 invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 694 sget-object v2, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v1, v2, v1 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_62 add-int/lit8 v0, v0, 0x1 goto :goto_38 .line 699 :cond_65 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 702 :cond_69 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 705 :cond_6c iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v8, v3, 0x1 add-int v9, v8, v1 .line 708 iget-object v10, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v7, v10, v3 .line 709 invoke-virtual {p1, v0, v1, v10, v8}, Ljava/lang/String;->getChars(II[CI)V .line 710 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 p1, -0x1 move v10, p1 move v1, v0 move v3, v8 :goto_7f if-ge v3, v9, :cond_9d .line 716 iget-object v11, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v11, v11, v3 if-le v11, v5, :cond_96 if-eq v11, v6, :cond_96 if-eq v11, v7, :cond_96 if-ne v11, v4, :cond_9a .line 717 iget v12, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v13, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v13, v13, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v12, v13 if-eqz v12, :cond_9a :cond_96 add-int/lit8 v0, v0, 0x1 move v10, v3 move v1, v11 :cond_9a add-int/lit8 v3, v3, 0x1 goto :goto_7f :cond_9d add-int/2addr v2, v0 .line 726 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 if-le v2, v3, :cond_a6 .line 727 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 729 :cond_a6 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v2, 0x1 if-ne v0, v2, :cond_c1 .line 732 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v0, v10, 0x1 add-int/lit8 v3, v10, 0x2 sub-int/2addr v9, v10 sub-int/2addr v9, v2 invoke-static {p1, v0, p1, v3, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 733 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v6, p1, v10 .line 734 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v1, v3, v1 aput-char v1, p1, v0 goto :goto_10d :cond_c1 if-le v0, v2, :cond_10d .line 736 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v10, 0x1 add-int/lit8 v11, v10, 0x2 sub-int v12, v9, v10 sub-int/2addr v12, v2 invoke-static {v0, v3, v0, v11, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 737 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v6, v0, v10 .line 738 sget-object v11, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char v1, v11, v1 aput-char v1, v0, v3 add-int/2addr v9, v2 add-int/2addr v10, p1 :goto_db if-lt v10, v8, :cond_10d .line 741 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char p1, p1, v10 if-le p1, v5, :cond_f2 if-eq p1, v6, :cond_f2 if-eq p1, v7, :cond_f2 if-ne p1, v4, :cond_10a .line 743 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v1, v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v1 if-eqz v0, :cond_10a .line 745 :cond_f2 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v1, v10, 0x1 add-int/lit8 v3, v10, 0x2 sub-int v11, v9, v10 sub-int/2addr v11, v2 invoke-static {v0, v1, v0, v3, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 746 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v6, v0, v10 .line 747 sget-object v3, Lcom/alibaba/fastjson/serializer/SerializeWriter;->replaceChars:[C aget-char p1, v3, p1 aput-char p1, v0, v1 add-int/lit8 v9, v9, 0x1 :cond_10a add-int/lit8 v10, v10, -0x1 goto :goto_db .line 753 :cond_10d :goto_10d iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v0, v2 aput-char v7, p1, v0 return-void .end method .method public writeTo(Ljava/io/OutputStream;Ljava/lang/String;)V .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 220 invoke-static {p2}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset; move-result-object p2 invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeTo(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V return-void .end method .method public writeTo(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V .registers 7 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 224 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_1a .line 227 new-instance v0, Ljava/lang/String; iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C const/4 v2, 0x0 iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I invoke-direct {v0, v1, v2, v3}, Ljava/lang/String;->([CII)V invoke-virtual {p2}, Ljava/nio/charset/Charset;->name()Ljava/lang/String; move-result-object p2 invoke-virtual {v0, p2}, Ljava/lang/String;->getBytes(Ljava/lang/String;)[B move-result-object p2 .line 228 invoke-virtual {p1, p2}, Ljava/io/OutputStream;->write([B)V return-void .line 225 :cond_1a new-instance p1, Ljava/lang/UnsupportedOperationException; const-string p2, "writer not null" invoke-direct {p1, p2}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method .method public writeTo(Ljava/io/Writer;)V .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 213 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_d .line 216 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C const/4 v1, 0x0 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I invoke-virtual {p1, v0, v1, v2}, Ljava/io/Writer;->write([CII)V return-void .line 214 :cond_d new-instance p1, Ljava/lang/UnsupportedOperationException; const-string v0, "writer not null" invoke-direct {p1, v0}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw p1 .end method