.class public final Lcom/alibaba/fastjson/serializer/SerializeWriter; .super Ljava/io/Writer; .source "SerializeWriter.java" # static fields .field private static final bufLocal:Ljava/lang/ThreadLocal; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ThreadLocal<", "Ljava/lang/ref/SoftReference<", "[C>;>;" } .end annotation .end field # instance fields .field protected beanToArray:Z .field protected browserCompatible:Z .field protected browserSecure:Z .field protected buf:[C .field protected bufLocalRef:Ljava/lang/ref/SoftReference; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/ref/SoftReference<", "[C>;" } .end annotation .end field .field protected count:I .field protected disableCheckSpecialChar:Z .field protected disableCircularReferenceDetect:Z .field protected features:I .field protected ignoreNonFieldGetter:Z .field protected keySeperator:C .field protected notWriteDefaultValue:Z .field protected notWriteRootClassName:Z .field protected prettyFormat:Z .field protected quoteFieldNames:Z .field protected skipTransientField:Z .field protected sortField:Z .field protected useSingleQuotes:Z .field protected writeClassName:Z .field protected writeDirect:Z .field protected writeEnumUsingName:Z .field protected writeEnumUsingToString:Z .field protected writeMapNullValue:Z .field protected writeNonStringValueAsString:Z .field private final writer:Ljava/io/Writer; # direct methods .method static constructor ()V .locals 1 .line 48 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; return-void .end method .method public constructor ()V .locals 1 const/4 v0, 0x0 .line 77 check-cast v0, 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 .locals 1 const/4 v0, 0x0 .line 134 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 .locals 1 .line 80 invoke-direct {p0}, Ljava/io/Writer;->()V .line 81 iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; .line 82 sget p1, Lcom/alibaba/fastjson/JSON;->DEFAULT_GENERATE_FEATURE:I iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I .line 84 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->computeFeatures()V .line 86 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 p1 check-cast p1, Ljava/lang/ref/SoftReference; iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; .line 88 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; if-eqz p1, :cond_0 .line 89 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; invoke-virtual {p1}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; move-result-object p1 check-cast p1, [C iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C .line 90 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocal:Ljava/lang/ThreadLocal; const/4 v0, 0x0 invoke-virtual {p1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V .line 93 :cond_0 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C if-nez p1, :cond_1 const/16 p1, 0x400 .line 94 new-array p1, p1, [C iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C :cond_1 return-void .end method .method public constructor (Ljava/io/Writer;I)V .locals 2 .line 137 invoke-direct {p0}, Ljava/io/Writer;->()V .line 138 iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-lez p2, :cond_0 .line 143 new-array p1, p2, [C iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C return-void .line 141 :cond_0 new-instance p1, Ljava/lang/IllegalArgumentException; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "Negative initial size: " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; invoke-virtual {v0}, 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 varargs constructor (Ljava/io/Writer;I[Lcom/alibaba/fastjson/serializer/SerializerFeature;)V .locals 2 .line 106 invoke-direct {p0}, Ljava/io/Writer;->()V .line 107 iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; .line 109 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 p1 check-cast p1, Ljava/lang/ref/SoftReference; iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; .line 111 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; if-eqz p1, :cond_0 .line 112 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; invoke-virtual {p1}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; move-result-object p1 check-cast p1, [C iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C .line 113 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocal:Ljava/lang/ThreadLocal; const/4 v0, 0x0 invoke-virtual {p1, v0}, Ljava/lang/ThreadLocal;->set(Ljava/lang/Object;)V .line 116 :cond_0 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C if-nez p1, :cond_1 const/16 p1, 0x400 .line 117 new-array p1, p1, [C iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C .line 121 :cond_1 array-length p1, p3 const/4 v0, 0x0 :goto_0 if-ge v0, p1, :cond_2 aget-object v1, p3, v0 .line 122 invoke-virtual {v1}, Lcom/alibaba/fastjson/serializer/SerializerFeature;->getMask()I move-result v1 or-int/2addr p2, v1 add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 124 :cond_2 iput p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I .line 126 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->computeFeatures()V return-void .end method .method public varargs constructor (Ljava/io/Writer;[Lcom/alibaba/fastjson/serializer/SerializerFeature;)V .locals 1 const/4 v0, 0x0 .line 103 invoke-direct {p0, p1, v0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->(Ljava/io/Writer;I[Lcom/alibaba/fastjson/serializer/SerializerFeature;)V return-void .end method .method public varargs constructor ([Lcom/alibaba/fastjson/serializer/SerializerFeature;)V .locals 1 const/4 v0, 0x0 .line 99 invoke-direct {p0, v0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->(Ljava/io/Writer;[Lcom/alibaba/fastjson/serializer/SerializerFeature;)V return-void .end method .method static isSpecial(CI)Z .locals 3 const/4 v0, 0x0 const/16 v1, 0x20 if-ne p0, v1, :cond_0 return v0 :cond_0 const/16 v1, 0x2f const/4 v2, 0x1 if-ne p0, v1, :cond_2 .line 1839 sget-object p0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget p0, p0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr p0, p1 if-eqz p0, :cond_1 const/4 v0, 0x1 :cond_1 return v0 :cond_2 const/16 p1, 0x23 const/16 v1, 0x5c if-le p0, p1, :cond_3 if-eq p0, v1, :cond_3 return v0 :cond_3 const/16 p1, 0x1f if-le p0, p1, :cond_5 if-eq p0, v1, :cond_5 const/16 p1, 0x22 if-ne p0, p1, :cond_4 goto :goto_0 :cond_4 return v0 :cond_5 :goto_0 return v2 .end method .method private writeEnumFieldValue(CLjava/lang/String;Ljava/lang/String;)V .locals 1 .line 1878 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z if-eqz v0, :cond_0 .line 1879 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldValue(CLjava/lang/String;Ljava/lang/String;)V goto :goto_0 .line 1881 :cond_0 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldValueStringWithDoubleQuote(CLjava/lang/String;Ljava/lang/String;)V :goto_0 return-void .end method .method private writeEnumValue(Ljava/lang/String;C)V .locals 1 .line 605 sget-object v0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->UseSingleQuotes:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v0 if-eqz v0, :cond_0 const/16 v0, 0x27 .line 606 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 607 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 608 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 609 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 :cond_0 const/16 v0, 0x22 .line 612 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 613 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 614 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 615 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_0 return-void .end method .method private writeKeyWithSingleQuoteIfHasSpecial(Ljava/lang/String;)V .locals 17 move-object/from16 v0, p0 move-object/from16 v1, p1 .line 2035 sget-object v2, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_singleQuotes:[B .line 2037 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v3 .line 2038 iget v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v4, v3 const/4 v5, 0x1 add-int/2addr v4, v5 .line 2039 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v6, v6 const/16 v7, 0x5c const/16 v8, 0x3a const/4 v9, 0x0 const/16 v10, 0x27 if-le v4, v6, :cond_8 .line 2040 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v6, :cond_7 if-nez v3, :cond_0 .line 2042 invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 2043 invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 2044 invoke-virtual {v0, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void :cond_0 const/4 v4, 0x0 :goto_0 if-ge v4, v3, :cond_2 .line 2050 invoke-virtual {v1, v4}, Ljava/lang/String;->charAt(I)C move-result v6 .line 2051 array-length v11, v2 if-ge v6, v11, :cond_1 aget-byte v6, v2, v6 if-eqz v6, :cond_1 goto :goto_1 :cond_1 add-int/lit8 v4, v4, 0x1 goto :goto_0 :cond_2 const/4 v5, 0x0 :goto_1 if-eqz v5, :cond_3 .line 2058 invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_3 :goto_2 if-ge v9, v3, :cond_5 .line 2061 invoke-virtual {v1, v9}, Ljava/lang/String;->charAt(I)C move-result v4 .line 2062 array-length v6, v2 if-ge v4, v6, :cond_4 aget-byte v6, v2, v4 if-eqz v6, :cond_4 .line 2063 invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 2064 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v4, v6, v4 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_3 .line 2066 :cond_4 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_3 add-int/lit8 v9, v9, 0x1 goto :goto_2 :cond_5 if-eqz v5, :cond_6 .line 2070 invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 2072 :cond_6 invoke-virtual {v0, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 2076 :cond_7 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V :cond_8 if-nez v3, :cond_a .line 2080 iget v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v1, v1, 0x3 .line 2081 iget-object v2, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v2, v2 if-le v1, v2, :cond_9 .line 2082 iget v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v1, v1, 0x3 invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 2084 :cond_9 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v3, v2, 0x1 iput v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v10, v1, v2 .line 2085 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v3, v2, 0x1 iput v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v10, v1, v2 .line 2086 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v3, v2, 0x1 iput v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v8, v1, v2 return-void .line 2090 :cond_a iget v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int v11, v6, v3 .line 2093 iget-object v12, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {v1, v9, v3, v12, v6}, Ljava/lang/String;->getChars(II[CI)V .line 2094 iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I move v1, v6 const/4 v3, 0x0 :goto_4 if-ge v1, v11, :cond_f .line 2099 iget-object v12, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v12, v12, v1 .line 2100 array-length v13, v2 if-ge v12, v13, :cond_e aget-byte v13, v2, v12 if-eqz v13, :cond_e if-nez v3, :cond_c add-int/lit8 v4, v4, 0x3 .line 2103 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 if-le v4, v3, :cond_b .line 2104 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 2106 :cond_b iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 2108 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v13, v1, 0x1 iget-object v14, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v15, v1, 0x3 sub-int v16, v11, v1 add-int/lit8 v8, v16, -0x1 invoke-static {v3, v13, v14, v15, v8}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 2109 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v8, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v3, v9, v8, v5, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 2110 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v10, v1, v6 .line 2111 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v7, v1, v13 .line 2112 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v13, 0x1 sget-object v8, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v8, v8, v12 aput-char v8, v1, v3 add-int/lit8 v11, v11, 0x2 .line 2114 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v8, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v8, v8, -0x2 aput-char v10, v1, v8 move v1, v3 const/4 v3, 0x1 goto :goto_5 :cond_c add-int/lit8 v4, v4, 0x1 .line 2119 iget-object v8, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v8, v8 if-le v4, v8, :cond_d .line 2120 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 2122 :cond_d iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 2124 iget-object v8, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v13, v1, 0x1 iget-object v14, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v15, v1, 0x2 sub-int v9, v11, v1 invoke-static {v8, v13, v14, v15, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 2125 iget-object v8, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v7, v8, v1 .line 2126 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v8, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v8, v8, v12 aput-char v8, v1, v13 add-int/lit8 v11, v11, 0x1 move v1, v13 :cond_e :goto_5 add-int/2addr v1, v5 const/16 v8, 0x3a const/4 v9, 0x0 goto :goto_4 .line 2132 :cond_f iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sub-int/2addr v4, v5 const/16 v2, 0x3a aput-char v2, v1, v4 return-void .end method # virtual methods .method public append(C)Lcom/alibaba/fastjson/serializer/SerializeWriter; .locals 0 .line 358 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; .locals 2 if-nez p1, :cond_0 const-string p1, "null" goto :goto_0 .line 346 :cond_0 invoke-interface {p1}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; move-result-object p1 :goto_0 const/4 v0, 0x0 .line 347 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; .locals 0 if-nez p1, :cond_0 const-string p1, "null" .line 352 :cond_0 invoke-interface {p1, p2, p3}, Ljava/lang/CharSequence;->subSequence(II)Ljava/lang/CharSequence; move-result-object p1 invoke-interface {p1}, Ljava/lang/CharSequence;->toString()Ljava/lang/String; move-result-object p1 const/4 p2, 0x0 .line 353 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; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 34 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; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 34 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; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 34 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; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 34 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; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 34 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; .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 34 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 .locals 2 .line 409 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v0, :cond_0 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I if-lez v0, :cond_0 .line 410 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V .line 412 :cond_0 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 const/16 v1, 0x2000 if-gt v0, v1, :cond_3 .line 414 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; if-eqz v0, :cond_2 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; invoke-virtual {v0}, Ljava/lang/ref/SoftReference;->get()Ljava/lang/Object; move-result-object v0 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C if-eq v0, v1, :cond_1 goto :goto_0 .line 417 :cond_1 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->bufLocalRef:Ljava/lang/ref/SoftReference; goto :goto_1 .line 415 :cond_2 :goto_0 new-instance v0, Ljava/lang/ref/SoftReference; iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-direct {v0, v1}, Ljava/lang/ref/SoftReference;->(Ljava/lang/Object;)V .line 419 :goto_1 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_3 const/4 v0, 0x0 .line 422 iput-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C return-void .end method .method protected computeFeatures()V .locals 4 .line 165 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->BrowserSecure:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v1, v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v1 const/4 v1, 0x0 const/4 v2, 0x1 if-eqz v0, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserSecure:Z .line 166 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->BrowserCompatible:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_1 const/4 v0, 0x1 goto :goto_1 :cond_1 const/4 v0, 0x0 :goto_1 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserCompatible:Z .line 167 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->QuoteFieldNames:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_2 const/4 v0, 0x1 goto :goto_2 :cond_2 const/4 v0, 0x0 :goto_2 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->quoteFieldNames:Z .line 168 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->UseSingleQuotes:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_3 const/4 v0, 0x1 goto :goto_3 :cond_3 const/4 v0, 0x0 :goto_3 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z .line 169 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->SortField:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_4 const/4 v0, 0x1 goto :goto_4 :cond_4 const/4 v0, 0x0 :goto_4 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->sortField:Z .line 170 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->DisableCircularReferenceDetect:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_5 const/4 v0, 0x1 goto :goto_5 :cond_5 const/4 v0, 0x0 :goto_5 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->disableCircularReferenceDetect:Z .line 171 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->BeanToArray:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_6 const/4 v0, 0x1 goto :goto_6 :cond_6 const/4 v0, 0x0 :goto_6 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->beanToArray:Z .line 172 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->PrettyFormat:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_7 const/4 v0, 0x1 goto :goto_7 :cond_7 const/4 v0, 0x0 :goto_7 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->prettyFormat:Z .line 173 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteClassName:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_8 const/4 v0, 0x1 goto :goto_8 :cond_8 const/4 v0, 0x0 :goto_8 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeClassName:Z .line 174 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->NotWriteRootClassName:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_9 const/4 v0, 0x1 goto :goto_9 :cond_9 const/4 v0, 0x0 :goto_9 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->notWriteRootClassName:Z .line 175 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->SkipTransientField:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_a const/4 v0, 0x1 goto :goto_a :cond_a const/4 v0, 0x0 :goto_a iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->skipTransientField:Z .line 176 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->IgnoreNonFieldGetter:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_b const/4 v0, 0x1 goto :goto_b :cond_b const/4 v0, 0x0 :goto_b iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->ignoreNonFieldGetter:Z .line 177 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNonStringValueAsString:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_c const/4 v0, 0x1 goto :goto_c :cond_c const/4 v0, 0x0 :goto_c iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNonStringValueAsString:Z .line 178 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->NotWriteDefaultValue:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_d const/4 v0, 0x1 goto :goto_d :cond_d const/4 v0, 0x0 :goto_d iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->notWriteDefaultValue:Z .line 179 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingName:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_e const/4 v0, 0x1 goto :goto_e :cond_e const/4 v0, 0x0 :goto_e iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumUsingName:Z .line 180 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingToString:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_f const/4 v0, 0x1 goto :goto_f :cond_f const/4 v0, 0x0 :goto_f iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumUsingToString:Z .line 181 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteMapNullValue:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_10 const/4 v0, 0x1 goto :goto_10 :cond_10 const/4 v0, 0x0 :goto_10 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeMapNullValue:Z .line 182 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->DisableCheckSpecialChar:Lcom/alibaba/fastjson/serializer/SerializerFeature; iget v3, v3, Lcom/alibaba/fastjson/serializer/SerializerFeature;->mask:I and-int/2addr v0, v3 if-eqz v0, :cond_11 const/4 v0, 0x1 goto :goto_11 :cond_11 const/4 v0, 0x0 :goto_11 iput-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->disableCheckSpecialChar:Z .line 184 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->quoteFieldNames:Z if-eqz v0, :cond_12 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z if-nez v0, :cond_12 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserCompatible:Z if-nez v0, :cond_12 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserSecure:Z if-nez v0, :cond_12 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserCompatible:Z if-nez v0, :cond_12 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumUsingName:Z if-eqz v0, :cond_12 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumUsingToString:Z if-nez v0, :cond_12 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNonStringValueAsString:Z if-nez v0, :cond_12 iget v0, 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 v0, v3 if-nez v0, :cond_12 const/4 v1, 0x1 :cond_12 iput-boolean v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeDirect:Z .line 195 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z if-eqz v0, :cond_13 const/16 v0, 0x27 goto :goto_12 :cond_13 const/16 v0, 0x22 :goto_12 iput-char v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->keySeperator:C return-void .end method .method public config(Lcom/alibaba/fastjson/serializer/SerializerFeature;Z)V .locals 1 if-eqz p2, :cond_1 .line 150 iget p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I invoke-virtual {p1}, Lcom/alibaba/fastjson/serializer/SerializerFeature;->getMask()I move-result v0 or-int/2addr p2, v0 iput p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I .line 152 sget-object p2, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingToString:Lcom/alibaba/fastjson/serializer/SerializerFeature; if-ne p1, p2, :cond_0 .line 153 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object p2, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingName:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p2}, Lcom/alibaba/fastjson/serializer/SerializerFeature;->getMask()I move-result p2 xor-int/lit8 p2, p2, -0x1 and-int/2addr p1, p2 iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I goto :goto_0 .line 154 :cond_0 sget-object p2, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingName:Lcom/alibaba/fastjson/serializer/SerializerFeature; if-ne p1, p2, :cond_2 .line 155 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I sget-object p2, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingToString:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p2}, Lcom/alibaba/fastjson/serializer/SerializerFeature;->getMask()I move-result p2 xor-int/lit8 p2, p2, -0x1 and-int/2addr p1, p2 iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I goto :goto_0 .line 158 :cond_1 iget p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I invoke-virtual {p1}, Lcom/alibaba/fastjson/serializer/SerializerFeature;->getMask()I move-result p1 xor-int/lit8 p1, p1, -0x1 and-int/2addr p1, p2 iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I .line 161 :cond_2 :goto_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->computeFeatures()V return-void .end method .method public expandCapacity(I)V .locals 3 .line 282 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 mul-int/lit8 v0, v0, 0x3 div-int/lit8 v0, v0, 0x2 add-int/lit8 v0, v0, 0x1 if-ge v0, p1, :cond_0 goto :goto_0 :cond_0 move p1, v0 .line 287 :goto_0 new-array p1, p1, [C .line 288 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C 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 289 iput-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C return-void .end method .method public flush()V .locals 4 .line 2136 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_0 return-void .line 2141 :cond_0 :try_start_0 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; 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 2142 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; invoke-virtual {v0}, Ljava/io/Writer;->flush()V :try_end_0 .catch Ljava/io/IOException; {:try_start_0 .. :try_end_0} :catch_0 .line 2146 iput v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void :catch_0 move-exception v0 .line 2144 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 getBufferLength()I .locals 1 .line 130 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 return v0 .end method .method public isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z .locals 1 .line 223 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_0 const/4 p1, 0x1 goto :goto_0 :cond_0 const/4 p1, 0x0 :goto_0 return p1 .end method .method public isIgnoreNonFieldGetter()Z .locals 1 .line 215 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->ignoreNonFieldGetter:Z return v0 .end method .method public isNotWriteDefaultValue()Z .locals 1 .line 207 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->notWriteDefaultValue:Z return v0 .end method .method public isPrettyFormat()Z .locals 1 .line 199 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->prettyFormat:Z return v0 .end method .method public isSkipTransientField()Z .locals 1 .line 219 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->skipTransientField:Z return v0 .end method .method public isSortField()Z .locals 1 .line 203 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->sortField:Z return v0 .end method .method public isWriteMapNullValue()Z .locals 1 .line 211 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeMapNullValue:Z return v0 .end method .method public reset()V .locals 1 const/4 v0, 0x0 .line 363 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public size()I .locals 1 .line 397 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return v0 .end method .method public toBytes(Ljava/lang/String;)[B .locals 3 .line 382 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_1 if-nez p1, :cond_0 const-string p1, "UTF-8" .line 390 :cond_0 invoke-static {p1}, Ljava/nio/charset/Charset;->forName(Ljava/lang/String;)Ljava/nio/charset/Charset; move-result-object p1 .line 391 new-instance v0, Lcom/alibaba/fastjson/serializer/SerialWriterStringEncoder; invoke-direct {v0, p1}, Lcom/alibaba/fastjson/serializer/SerialWriterStringEncoder;->(Ljava/nio/charset/Charset;)V .line 393 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C const/4 v1, 0x0 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I invoke-virtual {v0, p1, v1, v2}, Lcom/alibaba/fastjson/serializer/SerialWriterStringEncoder;->encode([CII)[B move-result-object p1 return-object p1 .line 383 :cond_1 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 toCharArray()[C .locals 4 .line 372 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_0 .line 376 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I new-array v0, v0, [C .line 377 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-static {v1, v3, v0, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V return-object v0 .line 373 :cond_0 new-instance v0, Ljava/lang/UnsupportedOperationException; const-string v1, "writer not null" invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw v0 .end method .method public toString()Ljava/lang/String; .locals 4 .line 401 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 return-object v0 .end method .method public write(I)V .locals 3 .line 230 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v1, 0x1 add-int/2addr v0, v1 .line 231 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v2, v2 if-le v0, v2, :cond_1 .line 232 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v2, :cond_0 .line 233 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_0 .line 235 :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V const/4 v0, 0x1 .line 239 :cond_1 :goto_0 iget-object v1, 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, v1, v2 .line 240 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public write(Ljava/lang/String;)V .locals 2 if-nez p1, :cond_0 .line 427 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V return-void :cond_0 const/4 v0, 0x0 .line 431 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 .locals 4 .line 300 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v0, p3 .line 301 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v0, v1, :cond_2 .line 302 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v1, :cond_0 .line 303 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_1 .line 306 :cond_0 :goto_0 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v0, v1 add-int v1, p2, v0 .line 307 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I invoke-virtual {p1, p2, v1, v2, v3}, Ljava/lang/String;->getChars(II[CI)V .line 308 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 309 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V sub-int/2addr p3, v0 .line 312 iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length p2, p2 if-gt p3, p2, :cond_1 move v0, p3 move p2, v1 goto :goto_1 :cond_1 move p2, v1 goto :goto_0 :cond_2 :goto_1 add-int/2addr p3, p2 .line 316 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 317 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public write(Z)V .locals 0 if-eqz p1, :cond_0 const-string p1, "true" .line 1432 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_0 :cond_0 const-string p1, "false" .line 1434 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V :goto_0 return-void .end method .method public write([CII)V .locals 3 if-ltz p2, :cond_3 .line 250 array-length v0, p1 if-gt p2, v0, :cond_3 if-ltz p3, :cond_3 add-int v0, p2, p3 array-length v1, p1 if-gt v0, v1, :cond_3 if-ltz v0, :cond_3 if-nez p3, :cond_0 return-void .line 260 :cond_0 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v0, p3 .line 261 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v0, v1, :cond_2 .line 262 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v1, :cond_1 .line 263 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_0 .line 266 :cond_1 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v0, v1 .line 267 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, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 268 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 269 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->flush()V sub-int/2addr p3, v0 add-int/2addr p2, v0 .line 272 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 if-gt p3, v0, :cond_1 move v0, p3 .line 276 :cond_2 :goto_0 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 277 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .line 255 :cond_3 new-instance p1, Ljava/lang/IndexOutOfBoundsException; invoke-direct {p1}, Ljava/lang/IndexOutOfBoundsException;->()V throw p1 .end method .method public writeBooleanAndChar(ZC)V .locals 2 const/16 v0, 0x5d const/16 v1, 0x2c if-eqz p1, :cond_2 if-ne p2, v1, :cond_0 const-string p1, "true," .line 560 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_0 :cond_0 if-ne p2, v0, :cond_1 const-string p1, "true]" .line 562 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_0 :cond_1 const-string p1, "true" .line 564 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 565 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 :cond_2 if-ne p2, v1, :cond_3 const-string p1, "false," .line 569 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_0 :cond_3 if-ne p2, v0, :cond_4 const-string p1, "false]" .line 571 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_0 :cond_4 const-string p1, "false" .line 573 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 574 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_0 return-void .end method .method public writeByteArray([B)V .locals 17 move-object/from16 v0, p0 move-object/from16 v1, p1 .line 460 array-length v2, v1 .line 461 iget-boolean v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z if-eqz v3, :cond_0 const/16 v3, 0x27 goto :goto_0 :cond_0 const/16 v3, 0x22 :goto_0 if-nez v2, :cond_2 .line 464 iget-boolean v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z if-eqz v1, :cond_1 const-string v1, "\'\'" goto :goto_1 :cond_1 const-string v1, "\"\"" .line 465 :goto_1 invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void .line 469 :cond_2 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->CA:[C .line 471 div-int/lit8 v5, v2, 0x3 mul-int/lit8 v5, v5, 0x3 add-int/lit8 v6, v2, -0x1 .line 472 div-int/lit8 v7, v6, 0x3 add-int/lit8 v7, v7, 0x1 const/4 v8, 0x2 shl-int/2addr v7, v8 .line 474 iget v9, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 475 iget v10, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v10, v7 add-int/2addr v10, v8 .line 476 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v7, v7 const/16 v11, 0x3d const/4 v12, 0x0 if-le v10, v7, :cond_8 .line 477 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v7, :cond_7 .line 478 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V const/4 v7, 0x0 :goto_2 if-ge v7, v5, :cond_3 add-int/lit8 v9, v7, 0x1 .line 482 aget-byte v7, v1, v7 and-int/lit16 v7, v7, 0xff shl-int/lit8 v7, v7, 0x10 add-int/lit8 v10, v9, 0x1 aget-byte v9, v1, v9 and-int/lit16 v9, v9, 0xff shl-int/lit8 v9, v9, 0x8 or-int/2addr v7, v9 add-int/lit8 v9, v10, 0x1 aget-byte v10, v1, v10 and-int/lit16 v10, v10, 0xff or-int/2addr v7, v10 ushr-int/lit8 v10, v7, 0x12 and-int/lit8 v10, v10, 0x3f .line 485 aget-char v10, v4, v10 invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V ushr-int/lit8 v10, v7, 0xc and-int/lit8 v10, v10, 0x3f .line 486 aget-char v10, v4, v10 invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V ushr-int/lit8 v10, v7, 0x6 and-int/lit8 v10, v10, 0x3f .line 487 aget-char v10, v4, v10 invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V and-int/lit8 v7, v7, 0x3f .line 488 aget-char v7, v4, v7 invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V move v7, v9 goto :goto_2 :cond_3 sub-int/2addr v2, v5 if-lez v2, :cond_6 .line 495 aget-byte v5, v1, v5 and-int/lit16 v5, v5, 0xff shl-int/lit8 v5, v5, 0xa if-ne v2, v8, :cond_4 aget-byte v1, v1, v6 and-int/lit16 v1, v1, 0xff shl-int/lit8 v12, v1, 0x2 :cond_4 or-int v1, v5, v12 shr-int/lit8 v5, v1, 0xc .line 498 aget-char v5, v4, v5 invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V ushr-int/lit8 v5, v1, 0x6 and-int/lit8 v5, v5, 0x3f .line 499 aget-char v5, v4, v5 invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V if-ne v2, v8, :cond_5 and-int/lit8 v1, v1, 0x3f .line 500 aget-char v1, v4, v1 goto :goto_3 :cond_5 const/16 v1, 0x3d :goto_3 invoke-virtual {v0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 501 invoke-virtual {v0, v11}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 504 :cond_6 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 507 :cond_7 invoke-virtual {v0, v10}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 509 :cond_8 iput v10, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 510 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v13, v9, 0x1 aput-char v3, v7, v9 const/4 v7, 0x0 :goto_4 if-ge v7, v5, :cond_9 add-int/lit8 v9, v7, 0x1 .line 515 aget-byte v7, v1, v7 and-int/lit16 v7, v7, 0xff shl-int/lit8 v7, v7, 0x10 add-int/lit8 v14, v9, 0x1 aget-byte v9, v1, v9 and-int/lit16 v9, v9, 0xff shl-int/lit8 v9, v9, 0x8 or-int/2addr v7, v9 add-int/lit8 v9, v14, 0x1 aget-byte v14, v1, v14 and-int/lit16 v14, v14, 0xff or-int/2addr v7, v14 .line 518 iget-object v14, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v15, v13, 0x1 ushr-int/lit8 v16, v7, 0x12 and-int/lit8 v16, v16, 0x3f aget-char v16, v4, v16 aput-char v16, v14, v13 .line 519 iget-object v13, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v14, v15, 0x1 ushr-int/lit8 v16, v7, 0xc and-int/lit8 v16, v16, 0x3f aget-char v16, v4, v16 aput-char v16, v13, v15 .line 520 iget-object v13, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v15, v14, 0x1 ushr-int/lit8 v16, v7, 0x6 and-int/lit8 v16, v16, 0x3f aget-char v16, v4, v16 aput-char v16, v13, v14 .line 521 iget-object v13, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v14, v15, 0x1 and-int/lit8 v7, v7, 0x3f aget-char v7, v4, v7 aput-char v7, v13, v15 move v7, v9 move v13, v14 goto :goto_4 :cond_9 sub-int/2addr v2, v5 if-lez v2, :cond_c .line 528 aget-byte v5, v1, v5 and-int/lit16 v5, v5, 0xff shl-int/lit8 v5, v5, 0xa if-ne v2, v8, :cond_a aget-byte v1, v1, v6 and-int/lit16 v1, v1, 0xff shl-int/lit8 v12, v1, 0x2 :cond_a or-int v1, v5, v12 .line 531 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v6, v10, -0x5 shr-int/lit8 v7, v1, 0xc aget-char v7, v4, v7 aput-char v7, v5, v6 .line 532 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v6, v10, -0x4 ushr-int/lit8 v7, v1, 0x6 and-int/lit8 v7, v7, 0x3f aget-char v7, v4, v7 aput-char v7, v5, v6 .line 533 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v6, v10, -0x3 if-ne v2, v8, :cond_b and-int/lit8 v1, v1, 0x3f aget-char v1, v4, v1 goto :goto_5 :cond_b const/16 v1, 0x3d :goto_5 aput-char v1, v5, v6 .line 534 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v2, v10, -0x2 aput-char v11, v1, v2 .line 536 :cond_c iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v10, v10, -0x1 aput-char v3, v1, v10 return-void .end method .method public writeCharacterAndChar(CC)V .locals 0 .line 580 invoke-static {p1}, Ljava/lang/Character;->toString(C)Ljava/lang/String; move-result-object p1 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V .line 581 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .end method .method public writeDoubleAndChar(DC)V .locals 1 .line 549 invoke-static {p1, p2}, Ljava/lang/Double;->toString(D)Ljava/lang/String; move-result-object p1 const-string p2, ".0" .line 550 invoke-virtual {p1, p2}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result p2 if-eqz p2, :cond_0 const/4 p2, 0x0 .line 551 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 add-int/lit8 v0, v0, -0x2 invoke-virtual {p1, p2, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 .line 553 :cond_0 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 554 invoke-virtual {p0, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .end method .method public writeEnum(Ljava/lang/Enum;C)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/lang/Enum<", "*>;C)V" } .end annotation if-nez p1, :cond_0 .line 586 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V const/16 p1, 0x2c .line 587 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 591 :cond_0 sget-object v0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingName:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v0 if-eqz v0, :cond_1 .line 592 invoke-virtual {p1}, Ljava/lang/Enum;->name()Ljava/lang/String; move-result-object p1 invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumValue(Ljava/lang/String;C)V return-void .line 596 :cond_1 sget-object v0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteEnumUsingToString:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v0 if-eqz v0, :cond_2 .line 597 invoke-virtual {p1}, Ljava/lang/Enum;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {p0, p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumValue(Ljava/lang/String;C)V return-void .line 601 :cond_2 invoke-virtual {p1}, Ljava/lang/Enum;->ordinal()I move-result p1 invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeIntAndChar(IC)V return-void .end method .method public writeFieldEmptyList(CLjava/lang/String;)V .locals 0 .line 1339 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1340 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V const-string p1, "[]" .line 1341 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void .end method .method public writeFieldName(Ljava/lang/String;)V .locals 1 const/4 v0, 0x0 .line 1996 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;Z)V return-void .end method .method public writeFieldName(Ljava/lang/String;Z)V .locals 5 if-nez p1, :cond_0 const-string p1, "null:" .line 2001 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void .line 2005 :cond_0 iget-boolean p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z const/16 v0, 0x3a if-eqz p2, :cond_2 .line 2006 iget-boolean p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->quoteFieldNames:Z if-eqz p2, :cond_1 .line 2007 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithSingleQuote(Ljava/lang/String;)V .line 2008 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_3 .line 2010 :cond_1 invoke-direct {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeKeyWithSingleQuoteIfHasSpecial(Ljava/lang/String;)V goto :goto_3 .line 2013 :cond_2 iget-boolean p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->quoteFieldNames:Z if-eqz p2, :cond_3 .line 2014 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V goto :goto_3 .line 2016 :cond_3 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p2 const/4 v1, 0x0 const/4 v2, 0x1 if-nez p2, :cond_4 const/4 p2, 0x1 goto :goto_0 :cond_4 const/4 p2, 0x0 :goto_0 const/4 v3, 0x0 .line 2017 :goto_1 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v4 if-ge v3, v4, :cond_6 .line 2018 invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C move-result v4 .line 2019 invoke-static {v4, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isSpecial(CI)Z move-result v4 if-eqz v4, :cond_5 const/4 p2, 0x1 goto :goto_2 :cond_5 add-int/lit8 v3, v3, 0x1 goto :goto_1 :cond_6 :goto_2 if-eqz p2, :cond_7 .line 2025 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V goto :goto_3 .line 2027 :cond_7 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 2028 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_3 return-void .end method .method public writeFieldNull(CLjava/lang/String;)V .locals 0 .line 1333 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1334 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1335 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V return-void .end method .method public writeFieldNullBoolean(CLjava/lang/String;)V .locals 0 .line 1355 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1356 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1357 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullBooleanAsFalse:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result p1 if-eqz p1, :cond_0 const-string p1, "false" .line 1358 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_0 .line 1360 :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V :goto_0 return-void .end method .method public writeFieldNullList(CLjava/lang/String;)V .locals 0 .line 1365 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1366 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1367 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullListAsEmpty:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result p1 if-eqz p1, :cond_0 const-string p1, "[]" .line 1368 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_0 .line 1370 :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V :goto_0 return-void .end method .method public writeFieldNullNumber(CLjava/lang/String;)V .locals 0 .line 1375 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1376 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1377 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullNumberAsZero:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result p1 if-eqz p1, :cond_0 const/16 p1, 0x30 .line 1378 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 .line 1380 :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V :goto_0 return-void .end method .method public writeFieldNullString(CLjava/lang/String;)V .locals 0 .line 1345 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1346 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1347 sget-object p1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteNullStringAsEmpty:Lcom/alibaba/fastjson/serializer/SerializerFeature; invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result p1 if-eqz p1, :cond_0 const-string p1, "" .line 1348 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V goto :goto_0 .line 1350 :cond_0 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V :goto_0 return-void .end method .method public writeFieldValue(CLjava/lang/String;C)V .locals 0 .line 1385 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1386 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V if-nez p3, :cond_0 const-string p1, "\u0000" .line 1388 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V goto :goto_0 .line 1390 :cond_0 invoke-static {p3}, Ljava/lang/Character;->toString(C)Ljava/lang/String; move-result-object p1 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V :goto_0 return-void .end method .method public writeFieldValue(CLjava/lang/String;D)V .locals 1 .line 1541 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1542 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V const-wide/16 p1, 0x0 cmpl-double v0, p3, p1 if-nez v0, :cond_0 const/16 p1, 0x30 .line 1544 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 .line 1545 :cond_0 invoke-static {p3, p4}, Ljava/lang/Double;->isNaN(D)Z move-result p1 if-eqz p1, :cond_1 .line 1546 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V goto :goto_0 .line 1547 :cond_1 invoke-static {p3, p4}, Ljava/lang/Double;->isInfinite(D)Z move-result p1 if-eqz p1, :cond_2 .line 1548 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V goto :goto_0 .line 1550 :cond_2 invoke-static {p3, p4}, Ljava/lang/Double;->toString(D)Ljava/lang/String; move-result-object p1 const-string p2, ".0" .line 1551 invoke-virtual {p1, p2}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result p2 if-eqz p2, :cond_3 const/4 p2, 0x0 .line 1552 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p3 add-int/lit8 p3, p3, -0x2 invoke-virtual {p1, p2, p3}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 .line 1554 :cond_3 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V :goto_0 return-void .end method .method public writeFieldValue(CLjava/lang/String;F)V .locals 0 .line 1523 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1524 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V const/4 p1, 0x0 cmpl-float p1, p3, p1 if-nez p1, :cond_0 const/16 p1, 0x30 .line 1526 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 .line 1527 :cond_0 invoke-static {p3}, Ljava/lang/Float;->isNaN(F)Z move-result p1 if-eqz p1, :cond_1 .line 1528 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V goto :goto_0 .line 1529 :cond_1 invoke-static {p3}, Ljava/lang/Float;->isInfinite(F)Z move-result p1 if-eqz p1, :cond_2 .line 1530 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V goto :goto_0 .line 1532 :cond_2 invoke-static {p3}, Ljava/lang/Float;->toString(F)Ljava/lang/String; move-result-object p1 const-string p2, ".0" .line 1533 invoke-virtual {p1, p2}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result p2 if-eqz p2, :cond_3 const/4 p2, 0x0 .line 1534 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result p3 add-int/lit8 p3, p3, -0x2 invoke-virtual {p1, p2, p3}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 .line 1536 :cond_3 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V :goto_0 return-void .end method .method public writeFieldValue(CLjava/lang/String;I)V .locals 5 const/high16 v0, -0x80000000 if-eq p3, v0, :cond_4 .line 1439 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->quoteFieldNames:Z if-nez v0, :cond_0 goto :goto_1 :cond_0 if-gez p3, :cond_1 neg-int v0, p3 .line 1444 invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(I)I move-result v0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_1 invoke-static {p3}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(I)I move-result v0 .line 1446 :goto_0 invoke-virtual {p2}, Ljava/lang/String;->length()I move-result v1 .line 1447 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v2, v1 add-int/lit8 v2, v2, 0x4 add-int/2addr v2, v0 .line 1448 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 if-le v2, v0, :cond_3 .line 1449 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v0, :cond_2 .line 1450 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldValue1(CLjava/lang/String;I)V return-void .line 1453 :cond_2 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1456 :cond_3 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 1457 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 1459 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char p1, v2, v0 add-int p1, v0, v1 add-int/lit8 p1, p1, 0x1 .line 1463 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v0, 0x1 iget-char v4, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->keySeperator:C aput-char v4, v2, v3 const/4 v2, 0x0 .line 1465 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v0, v0, 0x2 invoke-virtual {p2, v2, v1, v3, v0}, Ljava/lang/String;->getChars(II[CI)V .line 1467 iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v0, p1, 0x1 iget-char v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->keySeperator:C aput-char v1, p2, v0 .line 1468 iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 p1, p1, 0x2 const/16 v0, 0x3a aput-char v0, p2, p1 .line 1470 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p3, p1, p2}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(II[C)V return-void .line 1440 :cond_4 :goto_1 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldValue1(CLjava/lang/String;I)V return-void .end method .method public writeFieldValue(CLjava/lang/String;J)V .locals 5 const-wide/high16 v0, -0x8000000000000000L cmp-long v2, p3, v0 if-eqz v2, :cond_4 .line 1480 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->quoteFieldNames:Z if-nez v0, :cond_0 goto :goto_1 :cond_0 const-wide/16 v0, 0x0 cmp-long v2, p3, v0 if-gez v2, :cond_1 neg-long v0, p3 .line 1485 invoke-static {v0, v1}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(J)I move-result v0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_1 invoke-static {p3, p4}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(J)I move-result v0 .line 1487 :goto_0 invoke-virtual {p2}, Ljava/lang/String;->length()I move-result v1 .line 1488 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v2, v1 add-int/lit8 v2, v2, 0x4 add-int/2addr v2, v0 .line 1489 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v0, v0 if-le v2, v0, :cond_3 .line 1490 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v0, :cond_2 .line 1491 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1492 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1493 invoke-virtual {p0, p3, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeLong(J)V return-void .line 1496 :cond_2 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1499 :cond_3 iget v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 1500 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 1502 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char p1, v2, v0 add-int p1, v0, v1 add-int/lit8 p1, p1, 0x1 .line 1506 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v0, 0x1 iget-char v4, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->keySeperator:C aput-char v4, v2, v3 const/4 v2, 0x0 .line 1508 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v0, v0, 0x2 invoke-virtual {p2, v2, v1, v3, v0}, Ljava/lang/String;->getChars(II[CI)V .line 1510 iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v0, p1, 0x1 iget-char v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->keySeperator:C aput-char v1, p2, v0 .line 1511 iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 p1, p1, 0x2 const/16 v0, 0x3a aput-char v0, p2, p1 .line 1513 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p3, p4, p1, p2}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(JI[C)V return-void .line 1481 :cond_4 :goto_1 invoke-virtual {p0, p1, p2, p3, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldValue1(CLjava/lang/String;J)V return-void .end method .method public writeFieldValue(CLjava/lang/String;Ljava/lang/Enum;)V .locals 1 .annotation system Ldalvik/annotation/Signature; value = { "(C", "Ljava/lang/String;", "Ljava/lang/Enum<", "*>;)V" } .end annotation if-nez p3, :cond_0 .line 1862 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1863 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1864 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V return-void .line 1868 :cond_0 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumUsingName:Z if-eqz v0, :cond_1 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumUsingToString:Z if-nez v0, :cond_1 .line 1869 invoke-virtual {p3}, Ljava/lang/Enum;->name()Ljava/lang/String; move-result-object p3 invoke-direct {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumFieldValue(CLjava/lang/String;Ljava/lang/String;)V goto :goto_0 .line 1870 :cond_1 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumUsingToString:Z if-eqz v0, :cond_2 .line 1871 invoke-virtual {p3}, Ljava/lang/Enum;->toString()Ljava/lang/String; move-result-object p3 invoke-direct {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeEnumFieldValue(CLjava/lang/String;Ljava/lang/String;)V goto :goto_0 .line 1873 :cond_2 invoke-virtual {p3}, Ljava/lang/Enum;->ordinal()I move-result p3 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldValue(CLjava/lang/String;I)V :goto_0 return-void .end method .method public writeFieldValue(CLjava/lang/String;Ljava/lang/String;)V .locals 3 .line 1559 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->quoteFieldNames:Z if-eqz v0, :cond_4 .line 1560 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z if-eqz v0, :cond_1 .line 1561 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1562 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V if-nez p3, :cond_0 .line 1564 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V goto :goto_0 .line 1566 :cond_0 invoke-virtual {p0, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V goto :goto_0 .line 1569 :cond_1 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserSecure:Z const/4 v1, 0x0 const/16 v2, 0x3a if-eqz v0, :cond_2 .line 1570 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1571 invoke-virtual {p0, p2, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V .line 1572 invoke-virtual {p0, p3, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V goto :goto_0 .line 1573 :cond_2 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserCompatible:Z if-eqz v0, :cond_3 .line 1574 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1575 invoke-virtual {p0, p2, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V .line 1576 invoke-virtual {p0, p3, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V goto :goto_0 .line 1578 :cond_3 invoke-virtual {p0, p1, p2, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldValueStringWithDoubleQuoteCheck(CLjava/lang/String;Ljava/lang/String;)V goto :goto_0 .line 1582 :cond_4 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1583 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V if-nez p3, :cond_5 .line 1585 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V goto :goto_0 .line 1587 :cond_5 invoke-virtual {p0, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V :goto_0 return-void .end method .method public writeFieldValue(CLjava/lang/String;Ljava/math/BigDecimal;)V .locals 0 .line 1886 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1887 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V if-nez p3, :cond_0 .line 1889 invoke-virtual {p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V goto :goto_0 .line 1891 :cond_0 invoke-virtual {p3}, Ljava/math/BigDecimal;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V :goto_0 return-void .end method .method public writeFieldValue(CLjava/lang/String;Z)V .locals 6 const/4 v0, 0x5 const/4 v1, 0x4 if-eqz p3, :cond_0 const/4 v2, 0x4 goto :goto_0 :cond_0 const/4 v2, 0x5 .line 1397 :goto_0 invoke-virtual {p2}, Ljava/lang/String;->length()I move-result v3 .line 1398 iget v4, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v4, v3 add-int/2addr v4, v1 add-int/2addr v4, v2 .line 1399 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v4, v1, :cond_2 .line 1400 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v1, :cond_1 .line 1401 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1402 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeString(Ljava/lang/String;)V const/16 p1, 0x3a .line 1403 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1404 invoke-virtual {p0, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Z)V return-void .line 1407 :cond_1 invoke-virtual {p0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1410 :cond_2 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 1411 iput v4, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 1413 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char p1, v2, v1 add-int p1, v1, v3 add-int/lit8 p1, p1, 0x1 .line 1417 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v1, 0x1 iget-char v5, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->keySeperator:C aput-char v5, v2, v4 .line 1419 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v1, v1, 0x2 const/4 v4, 0x0 invoke-virtual {p2, v4, v3, v2, v1}, Ljava/lang/String;->getChars(II[CI)V .line 1421 iget-object p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v1, p1, 0x1 iget-char v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->keySeperator:C aput-char v2, p2, v1 if-eqz p3, :cond_3 const-string p2, ":true" .line 1424 invoke-virtual {p2}, Ljava/lang/String;->toCharArray()[C move-result-object p2 iget-object p3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 p1, p1, 0x2 invoke-static {p2, v4, p3, p1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V goto :goto_1 :cond_3 const-string p2, ":false" .line 1426 invoke-virtual {p2}, Ljava/lang/String;->toCharArray()[C move-result-object p2 iget-object p3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 p1, p1, 0x2 const/4 v0, 0x6 invoke-static {p2, v4, p3, p1, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V :goto_1 return-void .end method .method public writeFieldValue1(CLjava/lang/String;I)V .locals 0 .line 1474 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1475 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1476 invoke-virtual {p0, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeInt(I)V return-void .end method .method public writeFieldValue1(CLjava/lang/String;J)V .locals 0 .line 1517 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1518 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeFieldName(Ljava/lang/String;)V .line 1519 invoke-virtual {p0, p3, p4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeLong(J)V return-void .end method .method public writeFieldValueStringWithDoubleQuote(CLjava/lang/String;Ljava/lang/String;)V .locals 9 .line 1775 invoke-virtual {p2}, Ljava/lang/String;->length()I move-result v0 .line 1778 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I if-nez p3, :cond_0 const/4 v2, 0x4 add-int/lit8 v3, v0, 0x8 add-int/2addr v1, v3 goto :goto_0 .line 1784 :cond_0 invoke-virtual {p3}, Ljava/lang/String;->length()I move-result v2 add-int v3, v0, v2 add-int/lit8 v3, v3, 0x6 add-int/2addr v1, v3 .line 1788 :goto_0 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 const/16 v4, 0x3a const/4 v5, 0x0 if-le v1, v3, :cond_2 .line 1789 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v3, :cond_1 .line 1790 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1791 invoke-virtual {p0, p2, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V .line 1792 invoke-virtual {p0, p3, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V return-void .line 1795 :cond_1 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1798 :cond_2 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v6, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char p1, v3, v6 .line 1800 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 p1, p1, 0x2 add-int v3, p1, v0 .line 1803 iget-object v6, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v7, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v7, v7, 0x1 const/16 v8, 0x22 aput-char v8, v6, v7 .line 1804 iget-object v6, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {p2, v5, v0, v6, p1}, Ljava/lang/String;->getChars(II[CI)V .line 1806 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 1808 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v8, p1, v3 add-int/lit8 v3, v3, 0x1 .line 1811 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 p2, v3, 0x1 aput-char v4, p1, v3 if-nez p3, :cond_3 .line 1814 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 p3, p2, 0x1 const/16 v0, 0x6e aput-char v0, p1, p2 .line 1815 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 p2, p3, 0x1 const/16 v0, 0x75 aput-char v0, p1, p3 .line 1816 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 p3, p2, 0x1 const/16 v0, 0x6c aput-char v0, p1, p2 .line 1817 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v0, p1, p3 return-void .line 1821 :cond_3 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v0, p2, 0x1 aput-char v8, p1, p2 .line 1824 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {p3, v5, v2, p1, v0}, Ljava/lang/String;->getChars(II[CI)V .line 1825 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget p2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 p2, p2, -0x1 aput-char v8, p1, p2 return-void .end method .method public writeFieldValueStringWithDoubleQuoteCheck(CLjava/lang/String;Ljava/lang/String;)V .locals 16 move-object/from16 v0, p0 move-object/from16 v1, p2 move-object/from16 v2, p3 .line 1593 invoke-virtual/range {p2 .. p2}, Ljava/lang/String;->length()I move-result v3 .line 1596 iget v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v5, 0x4 if-nez v2, :cond_0 add-int/lit8 v6, v3, 0x8 add-int/2addr v4, v6 const/4 v6, 0x4 goto :goto_0 .line 1602 :cond_0 invoke-virtual/range {p3 .. p3}, Ljava/lang/String;->length()I move-result v6 add-int v7, v3, v6 add-int/lit8 v7, v7, 0x6 add-int/2addr v4, v7 .line 1606 :goto_0 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v7, v7 const/16 v8, 0x3a const/4 v9, 0x0 if-le v4, v7, :cond_2 .line 1607 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v7, :cond_1 .line 1608 invoke-virtual/range {p0 .. p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1609 invoke-virtual {v0, v1, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V .line 1610 invoke-virtual {v0, v2, v9}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V return-void .line 1613 :cond_1 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1616 :cond_2 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v10, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char p1, v7, v10 .line 1618 iget v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v7, v7, 0x2 add-int v10, v7, v3 .line 1621 iget-object v11, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v12, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v13, 0x1 add-int/2addr v12, v13 const/16 v14, 0x22 aput-char v14, v11, v12 .line 1622 iget-object v11, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {v1, v9, v3, v11, v7}, Ljava/lang/String;->getChars(II[CI)V .line 1624 iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 1626 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v14, v1, v10 add-int/2addr v10, v13 .line 1629 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v10, 0x1 aput-char v8, v1, v10 const/16 v1, 0x75 if-nez v2, :cond_3 .line 1632 iget-object v2, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v3, 0x1 const/16 v5, 0x6e aput-char v5, v2, v3 .line 1633 iget-object v2, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v4, 0x1 aput-char v1, v2, v4 .line 1634 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v2, v3, 0x1 const/16 v4, 0x6c aput-char v4, v1, v3 .line 1635 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v4, v1, v2 return-void .line 1639 :cond_3 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v3, 0x1 aput-char v14, v7, v3 add-int v3, v8, v6 .line 1644 iget-object v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {v2, v9, v6, v7, v8}, Ljava/lang/String;->getChars(II[CI)V .line 1646 iget-boolean v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->disableCheckSpecialChar:Z if-nez v6, :cond_14 const/4 v6, -0x1 move v7, v4 move v4, v8 const/4 v10, -0x1 const/4 v11, 0x0 const/4 v12, -0x1 :goto_1 const/16 v15, 0x2028 if-ge v4, v3, :cond_a .line 1653 iget-object v14, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v14, v14, v4 const/16 v1, 0x5d if-lt v14, v1, :cond_6 const/16 v1, 0x7f if-lt v14, v1, :cond_9 if-eq v14, v15, :cond_4 const/16 v1, 0xa0 if-gt v14, v1, :cond_9 :cond_4 if-ne v10, v6, :cond_5 move v10, v4 :cond_5 add-int/lit8 v9, v9, 0x1 add-int/lit8 v7, v7, 0x4 goto :goto_2 .line 1671 :cond_6 iget v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I invoke-static {v14, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isSpecial(CI)Z move-result v1 if-eqz v1, :cond_9 add-int/lit8 v9, v9, 0x1 .line 1676 sget-object v1, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v1, v1 if-ge v14, v1, :cond_7 sget-object v1, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v1, v1, v14 if-ne v1, v5, :cond_7 add-int/lit8 v7, v7, 0x4 :cond_7 if-ne v10, v6, :cond_8 move v10, v4 move v12, v10 goto :goto_3 :cond_8 :goto_2 move v12, v4 :goto_3 move v11, v14 :cond_9 add-int/lit8 v4, v4, 0x1 const/16 v1, 0x75 const/16 v14, 0x22 goto :goto_1 :cond_a if-lez v9, :cond_14 add-int/2addr v7, v9 .line 1690 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v7, v1, :cond_b .line 1691 invoke-virtual {v0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1693 :cond_b iput v7, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/16 v1, 0x5c if-ne v9, v13, :cond_e if-ne v11, v15, :cond_c add-int/lit8 v2, v12, 0x1 add-int/lit8 v4, v12, 0x6 sub-int/2addr v3, v12 sub-int/2addr v3, v13 .line 1700 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v5, v2, v6, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1701 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v1, v3, v12 .line 1702 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C const/16 v3, 0x75 aput-char v3, v1, v2 .line 1703 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v2, v13 const/16 v3, 0x32 aput-char v3, v1, v2 .line 1704 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v2, v13 const/16 v3, 0x30 aput-char v3, v1, v2 .line 1705 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v2, v13 const/16 v3, 0x32 aput-char v3, v1, v2 .line 1706 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v2, v13 const/16 v3, 0x38 aput-char v3, v1, v2 goto/16 :goto_7 .line 1709 :cond_c sget-object v2, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v2, v2 if-ge v11, v2, :cond_d sget-object v2, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v2, v2, v11 if-ne v2, v5, :cond_d add-int/lit8 v2, v12, 0x1 add-int/lit8 v4, v12, 0x6 sub-int/2addr v3, v12 sub-int/2addr v3, v13 .line 1714 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v5, v2, v6, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1717 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v1, v3, v12 .line 1718 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v2, 0x1 const/16 v4, 0x75 aput-char v4, v1, v2 .line 1719 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v2, v3, 0x1 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v11, 0xc and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 aput-char v4, v1, v3 .line 1720 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v2, 0x1 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v11, 0x8 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 aput-char v4, v1, v2 .line 1721 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v2, v3, 0x1 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v11, 0x4 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 aput-char v4, v1, v3 .line 1722 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v3, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v4, v11, 0xf aget-char v3, v3, v4 aput-char v3, v1, v2 goto/16 :goto_7 :cond_d add-int/lit8 v2, v12, 0x1 add-int/lit8 v4, v12, 0x2 sub-int/2addr v3, v12 sub-int/2addr v3, v13 .line 1727 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v5, v2, v6, v4, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1728 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v1, v3, v12 .line 1729 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v3, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v3, v3, v11 aput-char v3, v1, v2 goto/16 :goto_7 :cond_e if-le v9, v13, :cond_14 sub-int v3, v10, v8 .line 1735 :goto_4 invoke-virtual/range {p3 .. p3}, Ljava/lang/String;->length()I move-result v4 if-ge v3, v4, :cond_14 .line 1736 invoke-virtual {v2, v3}, Ljava/lang/String;->charAt(I)C move-result v4 .line 1738 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v6, v6 if-ge v4, v6, :cond_f sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v6, v6, v4 if-nez v6, :cond_10 :cond_f const/16 v6, 0x2f if-ne v4, v6, :cond_12 sget-object v6, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 1740 invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v6 if-eqz v6, :cond_12 .line 1741 :cond_10 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v10, 0x1 aput-char v1, v6, v10 .line 1742 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v6, v6, v4 if-ne v6, v5, :cond_11 .line 1743 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 const/16 v9, 0x75 aput-char v9, v6, v7 .line 1744 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v9, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v10, v4, 0xc and-int/lit8 v10, v10, 0xf aget-char v9, v9, v10 aput-char v9, v6, v8 .line 1745 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v9, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v10, v4, 0x8 and-int/lit8 v10, v10, 0xf aget-char v9, v9, v10 aput-char v9, v6, v7 .line 1746 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v9, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v10, v4, 0x4 and-int/lit8 v10, v10, 0xf aget-char v9, v9, v10 aput-char v9, v6, v8 .line 1747 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v9, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v4, v4, 0xf aget-char v4, v9, v4 aput-char v4, v6, v7 :goto_5 move v10, v8 const/16 v9, 0x75 goto :goto_6 .line 1750 :cond_11 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v9, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v4, v9, v4 aput-char v4, v6, v7 goto :goto_5 :cond_12 if-ne v4, v15, :cond_13 .line 1755 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v10, 0x1 aput-char v1, v6, v10 .line 1756 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 const/16 v9, 0x75 aput-char v9, v6, v7 .line 1757 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v10, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v11, v4, 0xc and-int/lit8 v11, v11, 0xf aget-char v10, v10, v11 aput-char v10, v6, v8 .line 1758 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v10, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v11, v4, 0x8 and-int/lit8 v11, v11, 0xf aget-char v10, v10, v11 aput-char v10, v6, v7 .line 1759 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v10, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v11, v4, 0x4 and-int/lit8 v11, v11, 0xf aget-char v10, v10, v11 aput-char v10, v6, v8 .line 1760 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v10, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v4, v4, 0xf aget-char v4, v10, v4 aput-char v4, v6, v7 move v10, v8 goto :goto_6 :cond_13 const/16 v9, 0x75 .line 1763 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v10, 0x1 aput-char v4, v6, v10 move v10, v7 :goto_6 add-int/lit8 v3, v3, 0x1 goto/16 :goto_4 .line 1771 :cond_14 :goto_7 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, v13 const/16 v3, 0x22 aput-char v3, v1, v2 return-void .end method .method public writeFloatAndChar(FC)V .locals 2 .line 540 invoke-static {p1}, Ljava/lang/Float;->toString(F)Ljava/lang/String; move-result-object p1 const-string v0, ".0" .line 541 invoke-virtual {p1, v0}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_0 const/4 v0, 0x0 .line 542 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 add-int/lit8 v1, v1, -0x2 invoke-virtual {p1, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object p1 .line 544 :cond_0 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 545 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .end method .method public writeInt(I)V .locals 3 const/high16 v0, -0x80000000 if-ne p1, v0, :cond_0 const-string p1, "-2147483648" .line 436 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V return-void :cond_0 if-gez p1, :cond_1 neg-int v0, p1 .line 440 invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(I)I move-result v0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_1 invoke-static {p1}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(I)I move-result v0 .line 442 :goto_0 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v1, v0 .line 443 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v2, v2 if-le v1, v2, :cond_3 .line 444 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v2, :cond_2 .line 445 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_1 .line 447 :cond_2 new-array v1, v0, [C .line 448 invoke-static {p1, v0, v1}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(II[C)V const/4 p1, 0x0 .line 449 array-length v0, v1 invoke-virtual {p0, v1, p1, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write([CII)V return-void .line 454 :cond_3 :goto_1 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p1, v1, v0}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(II[C)V .line 456 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public writeIntAndChar(IC)V .locals 3 const/high16 v0, -0x80000000 if-ne p1, v0, :cond_0 const-string p1, "-2147483648" .line 621 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 622 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void :cond_0 if-gez p1, :cond_1 neg-int v0, p1 .line 626 invoke-static {v0}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(I)I move-result v0 add-int/lit8 v0, v0, 0x1 goto :goto_0 :cond_1 invoke-static {p1}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(I)I move-result v0 .line 628 :goto_0 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v1, v0 add-int/lit8 v0, v1, 0x1 .line 631 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v2, v2 if-le v0, v2, :cond_3 .line 632 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v2, :cond_2 .line 633 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeInt(I)V .line 634 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 637 :cond_2 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 640 :cond_3 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p1, v1, v2}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(II[C)V .line 641 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char p2, p1, v1 .line 643 iput v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public writeLong(J)V .locals 6 .line 689 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserCompatible:Z const/4 v1, 0x1 const/4 v2, 0x0 if-eqz v0, :cond_1 sget-object v0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteClassName:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 690 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v0 if-nez v0, :cond_1 const-wide v3, 0x1fffffffffffffL cmp-long v0, p1, v3 if-gtz v0, :cond_0 const-wide v3, -0x1fffffffffffffL cmp-long v0, p1, v3 if-gez v0, :cond_1 :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_1 const/4 v0, 0x0 :goto_0 const-wide/high16 v3, -0x8000000000000000L cmp-long v5, p1, v3 if-nez v5, :cond_3 if-eqz v0, :cond_2 const-string p1, "\"-9223372036854775808\"" .line 695 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_1 :cond_2 const-string p1, "-9223372036854775808" .line 697 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V :goto_1 return-void :cond_3 const-wide/16 v3, 0x0 cmp-long v5, p1, v3 if-gez v5, :cond_4 neg-long v3, p1 .line 701 invoke-static {v3, v4}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(J)I move-result v3 add-int/2addr v3, v1 goto :goto_2 :cond_4 invoke-static {p1, p2}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(J)I move-result v3 .line 703 :goto_2 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v1, v3 if-eqz v0, :cond_5 add-int/lit8 v1, v1, 0x2 .line 706 :cond_5 iget-object v4, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v4, v4 const/16 v5, 0x22 if-le v1, v4, :cond_8 .line 707 iget-object v4, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v4, :cond_6 .line 708 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V goto :goto_4 .line 710 :cond_6 new-array v1, v3, [C .line 711 invoke-static {p1, p2, v3, v1}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(JI[C)V if-eqz v0, :cond_7 .line 713 invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 714 array-length p1, v1 invoke-virtual {p0, v1, v2, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write([CII)V .line 715 invoke-virtual {p0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_3 .line 717 :cond_7 array-length p1, v1 invoke-virtual {p0, v1, v2, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write([CII)V :goto_3 return-void :cond_8 :goto_4 if-eqz v0, :cond_9 .line 723 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v5, v0, v2 add-int/lit8 v0, v1, -0x1 .line 724 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p1, p2, v0, v2}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(JI[C)V .line 725 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v5, p1, v0 goto :goto_5 .line 727 :cond_9 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p1, p2, v1, v0}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(JI[C)V .line 729 :goto_5 iput v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public writeLongAndChar(JC)V .locals 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 647 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserCompatible:Z const/4 v1, 0x1 if-eqz v0, :cond_1 sget-object v0, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteClassName:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 648 invoke-virtual {p0, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v0 if-nez v0, :cond_1 const-wide v2, 0x1fffffffffffffL cmp-long v0, p1, v2 if-gtz v0, :cond_0 const-wide v2, -0x1fffffffffffffL cmp-long v0, p1, v2 if-gez v0, :cond_1 :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_1 const/4 v0, 0x0 :goto_0 const-wide/high16 v2, -0x8000000000000000L cmp-long v4, p1, v2 if-nez v4, :cond_3 if-eqz v0, :cond_2 const-string p1, "\"-9223372036854775808\"" .line 653 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V goto :goto_1 :cond_2 const-string p1, "-9223372036854775808" .line 655 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(Ljava/lang/String;)V .line 656 :goto_1 invoke-virtual {p0, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void :cond_3 const-wide/16 v2, 0x0 cmp-long v4, p1, v2 if-gez v4, :cond_4 neg-long v2, p1 .line 660 invoke-static {v2, v3}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(J)I move-result v2 add-int/2addr v2, v1 goto :goto_2 :cond_4 invoke-static {p1, p2}, Lcom/alibaba/fastjson/util/IOUtils;->stringSize(J)I move-result v2 .line 662 :goto_2 iget v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v1, v2 if-eqz v0, :cond_5 add-int/lit8 v1, v1, 0x2 :cond_5 add-int/lit8 v2, v1, 0x1 .line 667 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 if-le v2, v3, :cond_7 .line 668 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v3, :cond_6 .line 669 invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeLong(J)V .line 670 invoke-virtual {p0, p3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 673 :cond_6 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V :cond_7 if-eqz v0, :cond_8 .line 677 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/16 v4, 0x22 aput-char v4, v0, v3 add-int/lit8 v0, v1, -0x1 .line 678 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p1, p2, v0, v3}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(JI[C)V .line 679 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v4, p1, v0 goto :goto_3 .line 681 :cond_8 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {p1, p2, v1, v0}, Lcom/alibaba/fastjson/util/IOUtils;->getChars(JI[C)V .line 683 :goto_3 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char p3, p1, v1 .line 685 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .end method .method public writeNull()V .locals 1 const-string v0, "null" .line 733 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 .locals 1 .line 1905 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z if-eqz v0, :cond_0 .line 1906 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithSingleQuote(Ljava/lang/String;)V goto :goto_0 :cond_0 const/4 v0, 0x0 .line 1908 invoke-virtual {p0, p1, v0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V :goto_0 return-void .end method .method public writeString(Ljava/lang/String;C)V .locals 1 .line 1896 iget-boolean v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->useSingleQuotes:Z if-eqz v0, :cond_0 .line 1897 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithSingleQuote(Ljava/lang/String;)V .line 1898 invoke-virtual {p0, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_0 .line 1900 :cond_0 invoke-virtual {p0, p1, p2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeStringWithDoubleQuote(Ljava/lang/String;C)V :goto_0 return-void .end method .method public writeStringWithDoubleQuote(Ljava/lang/String;C)V .locals 18 move-object/from16 v0, p0 move-object/from16 v1, p1 move/from16 v2, p2 if-nez v1, :cond_1 .line 738 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V if-eqz v2, :cond_0 .line 740 invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_0 return-void .line 745 :cond_1 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v3 .line 746 iget v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v4, v3 add-int/lit8 v4, v4, 0x2 if-eqz v2, :cond_2 add-int/lit8 v4, v4, 0x1 .line 751 :cond_2 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v5, v5 const/4 v6, 0x0 const/16 v7, 0x2f const/16 v8, 0x30 const/16 v9, 0x75 const/16 v10, 0xc const/16 v11, 0x8 const/16 v12, 0x22 const/16 v13, 0x5c const/4 v14, 0x4 const/4 v15, 0x1 if-le v4, v5, :cond_12 .line 752 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v5, :cond_11 .line 753 invoke-virtual {v0, v12}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 755 :goto_0 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v3 if-ge v6, v3, :cond_f .line 756 invoke-virtual {v1, v6}, Ljava/lang/String;->charAt(I)C move-result v3 .line 758 iget-boolean v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserSecure:Z if-eqz v4, :cond_6 if-lt v3, v8, :cond_3 const/16 v4, 0x39 if-le v3, v4, :cond_e :cond_3 const/16 v4, 0x61 if-lt v3, v4, :cond_4 const/16 v4, 0x7a if-le v3, v4, :cond_e :cond_4 const/16 v4, 0x41 if-lt v3, v4, :cond_5 const/16 v4, 0x5a if-le v3, v4, :cond_e :cond_5 const/16 v4, 0x2c if-eq v3, v4, :cond_e const/16 v4, 0x2e if-eq v3, v4, :cond_e const/16 v4, 0x5f if-eq v3, v4, :cond_e .line 761 invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 762 invoke-virtual {v0, v9}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 763 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0xc and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 764 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0x8 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 765 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0x4 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 766 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v3, v3, 0xf aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto/16 :goto_2 .line 769 :cond_6 iget-boolean v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserCompatible:Z if-eqz v4, :cond_a if-eq v3, v11, :cond_9 if-eq v3, v10, :cond_9 const/16 v4, 0xa if-eq v3, v4, :cond_9 const/16 v4, 0xd if-eq v3, v4, :cond_9 const/16 v4, 0x9 if-eq v3, v4, :cond_9 if-eq v3, v12, :cond_9 if-eq v3, v7, :cond_9 if-ne v3, v13, :cond_7 goto :goto_1 :cond_7 const/16 v4, 0x20 if-ge v3, v4, :cond_8 .line 784 invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 785 invoke-virtual {v0, v9}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 786 invoke-virtual {v0, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 787 invoke-virtual {v0, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 788 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->ASCII_CHARS:[C mul-int/lit8 v3, v3, 0x2 aget-char v4, v4, v3 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 789 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->ASCII_CHARS:[C add-int/2addr v3, v15 aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto/16 :goto_2 :cond_8 const/16 v4, 0x7f if-lt v3, v4, :cond_e .line 794 invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 795 invoke-virtual {v0, v9}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 796 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0xc and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 797 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0x8 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 798 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0x4 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 799 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v3, v3, 0xf aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_2 .line 778 :cond_9 :goto_1 invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 779 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_2 .line 803 :cond_a sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v4, v4 if-ge v3, v4, :cond_b sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v4, v4, v3 if-nez v4, :cond_c :cond_b if-ne v3, v7, :cond_e sget-object v4, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 805 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v4 if-eqz v4, :cond_e .line 806 :cond_c invoke-virtual {v0, v13}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 807 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v4, v4, v3 if-ne v4, v14, :cond_d .line 808 invoke-virtual {v0, v9}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 809 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0xc and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 810 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0x8 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 811 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0x4 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 812 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v3, v3, 0xf aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_2 .line 814 :cond_d sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_2 .line 820 :cond_e invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_2 add-int/lit8 v6, v6, 0x1 goto/16 :goto_0 .line 823 :cond_f invoke-virtual {v0, v12}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V if-eqz v2, :cond_10 .line 825 invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_10 return-void .line 829 :cond_11 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 832 :cond_12 iget v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v5, v15 add-int v14, v5, v3 .line 835 iget-object v10, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v11, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v12, v10, v11 .line 836 iget-object v10, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {v1, v6, v3, v10, v5}, Ljava/lang/String;->getChars(II[CI)V .line 838 iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I .line 840 iget-boolean v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserSecure:Z const/4 v10, -0x1 if-eqz v3, :cond_1f move v1, v5 :goto_3 if-ge v1, v14, :cond_17 .line 844 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v3, v3, v1 if-lt v3, v8, :cond_13 const/16 v6, 0x39 if-le v3, v6, :cond_16 :cond_13 const/16 v6, 0x61 if-lt v3, v6, :cond_14 const/16 v6, 0x7a if-le v3, v6, :cond_16 :cond_14 const/16 v6, 0x41 if-lt v3, v6, :cond_15 const/16 v6, 0x5a if-le v3, v6, :cond_16 :cond_15 const/16 v6, 0x2c if-eq v3, v6, :cond_16 const/16 v6, 0x2e if-eq v3, v6, :cond_16 const/16 v6, 0x5f if-eq v3, v6, :cond_16 add-int/lit8 v4, v4, 0x5 move v10, v1 :cond_16 add-int/lit8 v1, v1, 0x1 goto :goto_3 .line 854 :cond_17 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v4, v1, :cond_18 .line 855 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 857 :cond_18 iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I :goto_4 if-lt v10, v5, :cond_1d .line 860 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v1, v1, v10 if-lt v1, v8, :cond_19 const/16 v3, 0x39 if-le v1, v3, :cond_1c :cond_19 const/16 v3, 0x61 if-lt v1, v3, :cond_1a const/16 v3, 0x7a if-le v1, v3, :cond_1c :cond_1a const/16 v3, 0x41 if-lt v1, v3, :cond_1b const/16 v3, 0x5a if-le v1, v3, :cond_1c :cond_1b const/16 v3, 0x2c if-eq v1, v3, :cond_1c const/16 v3, 0x2e if-eq v1, v3, :cond_1c const/16 v3, 0x5f if-eq v1, v3, :cond_1c .line 864 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x1 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v10, 0x6 sub-int v11, v14, v10 sub-int/2addr v11, v15 invoke-static {v3, v4, v6, v7, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 865 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v13, v3, v10 .line 866 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v4 .line 867 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x2 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v7, v1, 0xc and-int/lit8 v7, v7, 0xf aget-char v6, v6, v7 aput-char v6, v3, v4 .line 868 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x3 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v7, v1, 0x8 and-int/lit8 v7, v7, 0xf aget-char v6, v6, v7 aput-char v6, v3, v4 .line 869 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x4 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v7, v1, 0x4 and-int/lit8 v7, v7, 0xf aget-char v6, v6, v7 aput-char v6, v3, v4 .line 870 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x5 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v1, v1, 0xf aget-char v1, v6, v1 aput-char v1, v3, v4 add-int/lit8 v14, v14, 0x5 :cond_1c add-int/lit8 v10, v10, -0x1 goto :goto_4 :cond_1d if-eqz v2, :cond_1e .line 876 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v3, v3, -0x2 aput-char v12, v1, v3 .line 877 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v3, v15 aput-char v2, v1, v3 goto :goto_5 .line 879 :cond_1e 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, v15 aput-char v12, v1, v2 :goto_5 return-void .line 885 :cond_1f iget-boolean v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->browserCompatible:Z if-eqz v3, :cond_30 move v1, v5 :goto_6 if-ge v1, v14, :cond_26 .line 889 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v3, v3, v1 if-eq v3, v12, :cond_24 if-eq v3, v7, :cond_24 if-ne v3, v13, :cond_20 goto :goto_8 :cond_20 const/16 v6, 0x8 if-eq v3, v6, :cond_23 const/16 v6, 0xc if-eq v3, v6, :cond_23 const/16 v6, 0xa if-eq v3, v6, :cond_23 const/16 v6, 0xd if-eq v3, v6, :cond_23 const/16 v6, 0x9 if-ne v3, v6, :cond_21 goto :goto_7 :cond_21 const/16 v6, 0x20 if-ge v3, v6, :cond_22 add-int/lit8 v4, v4, 0x5 goto :goto_9 :cond_22 const/16 v6, 0x7f if-lt v3, v6, :cond_25 add-int/lit8 v4, v4, 0x5 goto :goto_9 :cond_23 :goto_7 add-int/lit8 v4, v4, 0x1 goto :goto_9 :cond_24 :goto_8 add-int/lit8 v4, v4, 0x1 :goto_9 move v10, v1 :cond_25 add-int/lit8 v1, v1, 0x1 goto :goto_6 .line 922 :cond_26 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v1, v1 if-le v4, v1, :cond_27 .line 923 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 925 :cond_27 iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I :goto_a if-lt v10, v5, :cond_2e .line 928 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v1, v1, v10 const/16 v3, 0x8 if-eq v1, v3, :cond_2c const/16 v4, 0xc if-eq v1, v4, :cond_2c const/16 v6, 0xa if-eq v1, v6, :cond_2c const/16 v6, 0xd if-eq v1, v6, :cond_2c const/16 v6, 0x9 if-ne v1, v6, :cond_28 goto/16 :goto_c :cond_28 if-eq v1, v12, :cond_2b if-eq v1, v7, :cond_2b if-ne v1, v13, :cond_29 goto/16 :goto_b :cond_29 const/16 v6, 0x20 if-ge v1, v6, :cond_2a .line 953 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v10, 0x1 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x6 sub-int v16, v14, v10 add-int/lit8 v7, v16, -0x1 invoke-static {v6, v11, v3, v4, v7}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 954 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v13, v3, v10 .line 955 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v11 .line 956 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x2 aput-char v8, v3, v4 .line 957 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x3 aput-char v8, v3, v4 .line 958 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x4 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->ASCII_CHARS:[C mul-int/lit8 v1, v1, 0x2 aget-char v6, v6, v1 aput-char v6, v3, v4 .line 959 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x5 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->ASCII_CHARS:[C add-int/2addr v1, v15 aget-char v1, v6, v1 aput-char v1, v3, v4 add-int/lit8 v14, v14, 0x5 goto/16 :goto_d :cond_2a const/16 v3, 0x7f if-lt v1, v3, :cond_2d .line 965 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x1 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v10, 0x6 sub-int v11, v14, v10 sub-int/2addr v11, v15 invoke-static {v3, v4, v6, v7, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 966 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v13, v3, v10 .line 967 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v4 .line 968 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x2 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v7, v1, 0xc and-int/lit8 v7, v7, 0xf aget-char v6, v6, v7 aput-char v6, v3, v4 .line 969 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x3 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v7, v1, 0x8 and-int/lit8 v7, v7, 0xf aget-char v6, v6, v7 aput-char v6, v3, v4 .line 970 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x4 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v7, v1, 0x4 and-int/lit8 v7, v7, 0xf aget-char v6, v6, v7 aput-char v6, v3, v4 .line 971 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x5 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v1, v1, 0xf aget-char v1, v6, v1 aput-char v1, v3, v4 add-int/lit8 v14, v14, 0x5 goto :goto_d .line 945 :cond_2b :goto_b iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x1 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v10, 0x2 sub-int v11, v14, v10 sub-int/2addr v11, v15 invoke-static {v3, v4, v6, v7, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 946 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v13, v3, v10 .line 947 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v1, v3, v4 add-int/lit8 v14, v14, 0x1 goto :goto_d .line 935 :cond_2c :goto_c iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v10, 0x1 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v10, 0x2 sub-int v11, v14, v10 sub-int/2addr v11, v15 invoke-static {v3, v4, v6, v7, v11}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 936 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v13, v3, v10 .line 937 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v1, v6, v1 aput-char v1, v3, v4 add-int/lit8 v14, v14, 0x1 :cond_2d :goto_d add-int/lit8 v10, v10, -0x1 const/16 v7, 0x2f goto/16 :goto_a :cond_2e if-eqz v2, :cond_2f .line 977 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v3, v3, -0x2 aput-char v12, v1, v3 .line 978 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v3, v15 aput-char v2, v1, v3 goto :goto_e .line 980 :cond_2f 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, v15 aput-char v12, v1, v2 :goto_e return-void :cond_30 move v3, v5 const/4 v7, -0x1 const/4 v11, 0x0 const/16 v17, -0x1 :goto_f if-ge v3, v14, :cond_37 .line 992 iget-object v12, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v12, v12, v3 const/16 v8, 0x2028 if-ne v12, v8, :cond_32 add-int/lit8 v6, v6, 0x1 add-int/lit8 v4, v4, 0x4 if-ne v7, v10, :cond_31 :goto_10 move v7, v3 move/from16 v17, v7 goto :goto_12 :cond_31 :goto_11 move/from16 v17, v3 :goto_12 move v11, v12 goto :goto_13 :cond_32 const/16 v8, 0x5d if-lt v12, v8, :cond_34 const/16 v8, 0x7f if-lt v12, v8, :cond_36 const/16 v8, 0xa0 if-gt v12, v8, :cond_36 if-ne v7, v10, :cond_33 move v7, v3 :cond_33 add-int/lit8 v6, v6, 0x1 add-int/lit8 v4, v4, 0x4 goto :goto_11 .line 1020 :cond_34 iget v8, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->features:I invoke-static {v12, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isSpecial(CI)Z move-result v8 if-eqz v8, :cond_36 add-int/lit8 v6, v6, 0x1 .line 1025 sget-object v8, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v8, v8 if-ge v12, v8, :cond_35 sget-object v8, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v8, v8, v12 const/4 v11, 0x4 if-ne v8, v11, :cond_35 add-int/lit8 v4, v4, 0x4 :cond_35 if-ne v7, v10, :cond_31 goto :goto_10 :cond_36 :goto_13 add-int/lit8 v3, v3, 0x1 const/16 v8, 0x30 const/16 v12, 0x22 goto :goto_f :cond_37 if-lez v6, :cond_41 add-int/2addr v4, v6 .line 1039 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 if-le v4, v3, :cond_38 .line 1040 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1042 :cond_38 iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I if-ne v6, v15, :cond_3b const/16 v1, 0x2028 if-ne v11, v1, :cond_39 add-int/lit8 v1, v17, 0x1 add-int/lit8 v3, v17, 0x6 sub-int v14, v14, v17 sub-int/2addr v14, v15 .line 1049 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v4, v1, v5, v3, v14}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1050 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v13, v3, v17 .line 1051 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v1 .line 1052 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v1, v15 const/16 v4, 0x32 aput-char v4, v3, v1 .line 1053 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v1, v15 const/16 v4, 0x30 aput-char v4, v3, v1 .line 1054 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v1, v15 const/16 v4, 0x32 aput-char v4, v3, v1 .line 1055 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v1, v15 const/16 v4, 0x38 aput-char v4, v3, v1 goto/16 :goto_18 .line 1058 :cond_39 sget-object v1, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v1, v1 if-ge v11, v1, :cond_3a sget-object v1, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v1, v1, v11 const/4 v3, 0x4 if-ne v1, v3, :cond_3a add-int/lit8 v1, v17, 0x1 add-int/lit8 v3, v17, 0x6 sub-int v14, v14, v17 sub-int/2addr v14, v15 .line 1063 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v4, v1, v5, v3, v14}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1066 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v13, v3, v17 .line 1067 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v1, 0x1 aput-char v9, v3, v1 .line 1068 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v4, 0x1 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v6, v11, 0xc and-int/lit8 v6, v6, 0xf aget-char v5, v5, v6 aput-char v5, v1, v4 .line 1069 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v3, 0x1 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v6, v11, 0x8 and-int/lit8 v6, v6, 0xf aget-char v5, v5, v6 aput-char v5, v1, v3 .line 1070 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v4, 0x1 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v6, v11, 0x4 and-int/lit8 v6, v6, 0xf aget-char v5, v5, v6 aput-char v5, v1, v4 .line 1071 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v5, v11, 0xf aget-char v4, v4, v5 aput-char v4, v1, v3 goto/16 :goto_18 :cond_3a add-int/lit8 v1, v17, 0x1 add-int/lit8 v3, v17, 0x2 sub-int v14, v14, v17 sub-int/2addr v14, v15 .line 1076 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v4, v1, v5, v3, v14}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1077 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v13, v3, v17 .line 1078 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v4, v4, v11 aput-char v4, v3, v1 goto/16 :goto_18 :cond_3b if-le v6, v15, :cond_41 sub-int v3, v7, v5 .line 1084 :goto_14 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v4 if-ge v3, v4, :cond_41 .line 1085 invoke-virtual {v1, v3}, Ljava/lang/String;->charAt(I)C move-result v4 .line 1087 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v5, v5 if-ge v4, v5, :cond_3d sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v5, v5, v4 if-nez v5, :cond_3c goto :goto_15 :cond_3c const/16 v5, 0x2f goto :goto_16 :cond_3d :goto_15 const/16 v5, 0x2f if-ne v4, v5, :cond_3f sget-object v6, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 1089 invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v6 if-eqz v6, :cond_3f .line 1090 :goto_16 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 aput-char v13, v6, v7 .line 1091 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v6, v6, v4 const/4 v10, 0x4 if-ne v6, v10, :cond_3e .line 1092 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 aput-char v9, v6, v8 .line 1093 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v12, v4, 0xc and-int/lit8 v12, v12, 0xf aget-char v11, v11, v12 aput-char v11, v6, v7 .line 1094 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v12, v4, 0x8 and-int/lit8 v12, v12, 0xf aget-char v11, v11, v12 aput-char v11, v6, v8 .line 1095 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v12, v4, 0x4 and-int/lit8 v12, v12, 0xf aget-char v11, v11, v12 aput-char v11, v6, v7 .line 1096 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v4, v4, 0xf aget-char v4, v11, v4 aput-char v4, v6, v8 goto :goto_17 .line 1099 :cond_3e iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v4, v11, v4 aput-char v4, v6, v8 goto :goto_17 :cond_3f const/4 v10, 0x4 const/16 v6, 0x2028 if-ne v4, v6, :cond_40 .line 1104 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 aput-char v13, v6, v7 .line 1105 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 aput-char v9, v6, v8 .line 1106 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v12, v4, 0xc and-int/lit8 v12, v12, 0xf aget-char v11, v11, v12 aput-char v11, v6, v7 .line 1107 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v12, v4, 0x8 and-int/lit8 v12, v12, 0xf aget-char v11, v11, v12 aput-char v11, v6, v8 .line 1108 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v12, v4, 0x4 and-int/lit8 v12, v12, 0xf aget-char v11, v11, v12 aput-char v11, v6, v7 .line 1109 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v8, 0x1 sget-object v11, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v4, v4, 0xf aget-char v4, v11, v4 aput-char v4, v6, v8 goto :goto_17 .line 1112 :cond_40 iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v8, v7, 0x1 aput-char v4, v6, v7 move v7, v8 :goto_17 add-int/lit8 v3, v3, 0x1 goto/16 :goto_14 :cond_41 :goto_18 if-eqz v2, :cond_42 .line 1121 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v3, v3, -0x2 const/16 v4, 0x22 aput-char v4, v1, v3 .line 1122 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I sub-int/2addr v3, v15 aput-char v2, v1, v3 goto :goto_19 :cond_42 const/16 v4, 0x22 .line 1124 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, v15 aput-char v4, v1, v2 :goto_19 return-void .end method .method public writeStringWithDoubleQuoteDirect(Ljava/lang/String;C)V .locals 17 move-object/from16 v0, p0 move-object/from16 v1, p1 move/from16 v2, p2 if-nez v1, :cond_1 .line 1131 invoke-virtual/range {p0 .. p0}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writeNull()V if-eqz v2, :cond_0 .line 1133 invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_0 return-void .line 1138 :cond_1 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v3 .line 1139 iget v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v4, v3 add-int/lit8 v4, v4, 0x2 if-eqz v2, :cond_2 add-int/lit8 v4, v4, 0x1 .line 1144 :cond_2 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v5, v5 const/16 v6, 0x75 const/4 v7, 0x0 const/16 v8, 0x22 const/16 v9, 0x5c const/4 v10, 0x4 if-le v4, v5, :cond_8 .line 1145 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v5, :cond_7 .line 1146 invoke-virtual {v0, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1148 :goto_0 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v3 if-ge v7, v3, :cond_5 .line 1149 invoke-virtual {v1, v7}, Ljava/lang/String;->charAt(I)C move-result v3 .line 1151 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v4, v4 if-ge v3, v4, :cond_4 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v4, v4, v3 if-eqz v4, :cond_4 .line 1153 invoke-virtual {v0, v9}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1154 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v4, v4, v3 if-ne v4, v10, :cond_3 .line 1155 invoke-virtual {v0, v6}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1156 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0xc and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1157 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0x8 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1158 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v5, v3, 0x4 and-int/lit8 v5, v5, 0xf aget-char v4, v4, v5 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1159 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v3, v3, 0xf aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_1 .line 1161 :cond_3 sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v3, v4, v3 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_1 .line 1166 :cond_4 invoke-virtual {v0, v3}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_1 add-int/lit8 v7, v7, 0x1 goto :goto_0 .line 1169 :cond_5 invoke-virtual {v0, v8}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V if-eqz v2, :cond_6 .line 1171 invoke-virtual {v0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :cond_6 return-void .line 1175 :cond_7 invoke-virtual {v0, v4}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1178 :cond_8 iget v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v11, 0x1 add-int/2addr v5, v11 add-int v12, v5, v3 .line 1181 iget-object v13, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v14, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v8, v13, v14 .line 1182 iget-object v13, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {v1, v7, v3, v13, v5}, Ljava/lang/String;->getChars(II[CI)V .line 1184 iput v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v3, -0x1 move v14, v4 move v4, v5 const/4 v13, 0x0 const/4 v15, -0x1 const/16 v16, -0x1 :goto_2 const/16 v6, 0x2028 if-ge v4, v12, :cond_11 .line 1192 iget-object v11, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v11, v11, v4 const/16 v10, 0x5d if-lt v11, v10, :cond_c if-ne v11, v6, :cond_a add-int/lit8 v13, v13, 0x1 add-int/lit8 v14, v14, 0x4 if-ne v15, v3, :cond_9 :goto_3 move v15, v4 move/from16 v16, v15 goto :goto_5 :cond_9 :goto_4 move/from16 v16, v4 :goto_5 move v7, v11 goto :goto_8 :cond_a const/16 v6, 0x7f if-lt v11, v6, :cond_10 const/16 v6, 0xa0 if-gt v11, v6, :cond_10 if-ne v15, v3, :cond_b move v15, v4 :cond_b add-int/lit8 v13, v13, 0x1 add-int/lit8 v14, v14, 0x4 goto :goto_4 :cond_c const/16 v6, 0x1f if-le v11, v6, :cond_e if-eq v11, v9, :cond_e if-ne v11, v8, :cond_d goto :goto_6 :cond_d const/4 v6, 0x0 goto :goto_7 :cond_e :goto_6 const/4 v6, 0x1 :goto_7 if-eqz v6, :cond_10 add-int/lit8 v13, v13, 0x1 .line 1230 sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v6, v6 if-ge v11, v6, :cond_f sget-object v6, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v6, v6, v11 const/4 v7, 0x4 if-ne v6, v7, :cond_f add-int/lit8 v14, v14, 0x4 :cond_f if-ne v15, v3, :cond_9 goto :goto_3 :cond_10 :goto_8 add-int/lit8 v4, v4, 0x1 const/4 v10, 0x4 const/4 v11, 0x1 goto :goto_2 :cond_11 if-lez v13, :cond_1b add-int/2addr v14, v13 .line 1244 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v3, v3 if-le v14, v3, :cond_12 .line 1245 invoke-virtual {v0, v14}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1247 :cond_12 iput v14, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v3, 0x1 if-ne v13, v3, :cond_15 if-ne v7, v6, :cond_13 add-int/lit8 v1, v16, 0x1 add-int/lit8 v4, v16, 0x6 sub-int v12, v12, v16 sub-int/2addr v12, v3 .line 1254 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v6, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v5, v1, v6, v4, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1255 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v4, v16 .line 1256 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C const/16 v5, 0x75 aput-char v5, v4, v1 .line 1257 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v1, v3 const/16 v5, 0x32 aput-char v5, v4, v1 .line 1258 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v1, v3 const/16 v6, 0x30 aput-char v6, v4, v1 .line 1259 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v1, v3 aput-char v5, v4, v1 .line 1260 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/2addr v1, v3 const/16 v3, 0x38 aput-char v3, v4, v1 goto/16 :goto_c .line 1263 :cond_13 sget-object v1, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v1, v1 if-ge v7, v1, :cond_14 sget-object v1, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v1, v1, v7 const/4 v3, 0x4 if-ne v1, v3, :cond_14 add-int/lit8 v1, v16, 0x1 add-int/lit8 v3, v16, 0x6 sub-int v12, v12, v16 const/4 v4, 0x1 sub-int/2addr v12, v4 .line 1268 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v4, v1, v5, v3, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1271 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v16 .line 1272 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v1, 0x1 const/16 v5, 0x75 aput-char v5, v3, v1 .line 1273 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v4, 0x1 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v6, v7, 0xc and-int/lit8 v6, v6, 0xf aget-char v5, v5, v6 aput-char v5, v1, v4 .line 1274 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v4, v3, 0x1 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v6, v7, 0x8 and-int/lit8 v6, v6, 0xf aget-char v5, v5, v6 aput-char v5, v1, v3 .line 1275 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v4, 0x1 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v6, v7, 0x4 and-int/lit8 v6, v6, 0xf aget-char v5, v5, v6 aput-char v5, v1, v4 .line 1276 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v5, v7, 0xf aget-char v4, v4, v5 aput-char v4, v1, v3 goto/16 :goto_c :cond_14 add-int/lit8 v1, v16, 0x1 add-int/lit8 v3, v16, 0x2 sub-int v12, v12, v16 const/4 v4, 0x1 sub-int/2addr v12, v4 .line 1281 iget-object v4, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-static {v4, v1, v5, v3, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1282 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v9, v3, v16 .line 1283 iget-object v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v4, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v4, v4, v7 aput-char v4, v3, v1 goto/16 :goto_c :cond_15 if-le v13, v3, :cond_1b sub-int v3, v15, v5 .line 1289 :goto_9 invoke-virtual/range {p1 .. p1}, Ljava/lang/String;->length()I move-result v4 if-ge v3, v4, :cond_1b .line 1290 invoke-virtual {v1, v3}, Ljava/lang/String;->charAt(I)C move-result v4 .line 1292 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B array-length v5, v5 if-ge v4, v5, :cond_16 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v5, v5, v4 if-nez v5, :cond_17 :cond_16 const/16 v5, 0x2f if-ne v4, v5, :cond_19 sget-object v5, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 1294 invoke-virtual {v0, v5}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v5 if-eqz v5, :cond_19 .line 1295 :cond_17 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v15, 0x1 aput-char v9, v5, v15 .line 1296 sget-object v5, Lcom/alibaba/fastjson/util/IOUtils;->specicalFlags_doubleQuotes:[B aget-byte v5, v5, v4 const/4 v10, 0x4 if-ne v5, v10, :cond_18 .line 1297 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v7, 0x1 const/16 v12, 0x75 aput-char v12, v5, v7 .line 1298 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v11, 0x1 sget-object v12, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v13, v4, 0xc and-int/lit8 v13, v13, 0xf aget-char v12, v12, v13 aput-char v12, v5, v11 .line 1299 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v7, 0x1 sget-object v12, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v13, v4, 0x8 and-int/lit8 v13, v13, 0xf aget-char v12, v12, v13 aput-char v12, v5, v7 .line 1300 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v11, 0x1 sget-object v12, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v13, v4, 0x4 and-int/lit8 v13, v13, 0xf aget-char v12, v12, v13 aput-char v12, v5, v11 .line 1301 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v7, 0x1 sget-object v12, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v4, v4, 0xf aget-char v4, v12, v4 aput-char v4, v5, v7 :goto_a move v15, v11 const/16 v12, 0x75 goto :goto_b .line 1304 :cond_18 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v7, 0x1 sget-object v12, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v4, v12, v4 aput-char v4, v5, v7 goto :goto_a :cond_19 const/4 v10, 0x4 if-ne v4, v6, :cond_1a .line 1309 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v15, 0x1 aput-char v9, v5, v15 .line 1310 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v7, 0x1 const/16 v12, 0x75 aput-char v12, v5, v7 .line 1311 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v11, 0x1 sget-object v13, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v14, v4, 0xc and-int/lit8 v14, v14, 0xf aget-char v13, v13, v14 aput-char v13, v5, v11 .line 1312 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v7, 0x1 sget-object v13, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v14, v4, 0x8 and-int/lit8 v14, v14, 0xf aget-char v13, v13, v14 aput-char v13, v5, v7 .line 1313 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v11, 0x1 sget-object v13, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C ushr-int/lit8 v14, v4, 0x4 and-int/lit8 v14, v14, 0xf aget-char v13, v13, v14 aput-char v13, v5, v11 .line 1314 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v7, 0x1 sget-object v13, Lcom/alibaba/fastjson/util/IOUtils;->DIGITS:[C and-int/lit8 v4, v4, 0xf aget-char v4, v13, v4 aput-char v4, v5, v7 move v15, v11 goto :goto_b :cond_1a const/16 v12, 0x75 .line 1317 iget-object v5, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v7, v15, 0x1 aput-char v4, v5, v15 move v15, v7 :goto_b add-int/lit8 v3, v3, 0x1 goto/16 :goto_9 :cond_1b :goto_c if-eqz v2, :cond_1c .line 1325 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/lit8 v3, v3, -0x2 aput-char v8, v1, v3 .line 1326 iget-object v1, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v3, v0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v4, 0x1 sub-int/2addr v3, v4 aput-char v2, v1, v3 goto :goto_d :cond_1c const/4 v4, 0x1 .line 1328 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 v8, v1, v2 :goto_d return-void .end method .method protected writeStringWithSingleQuote(Ljava/lang/String;)V .locals 13 const/4 v0, 0x0 if-nez p1, :cond_1 .line 1914 iget p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v1, 0x4 add-int/2addr p1, v1 .line 1915 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length v2, v2 if-le p1, v2, :cond_0 .line 1916 invoke-virtual {p0, p1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V :cond_0 const-string v2, "null" .line 1918 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v4, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I invoke-virtual {v2, v0, v1, v3, v4}, Ljava/lang/String;->getChars(II[CI)V .line 1919 iput p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I return-void .line 1923 :cond_1 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 .line 1924 iget v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I add-int/2addr v2, v1 add-int/lit8 v2, v2, 0x2 .line 1925 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_6 .line 1926 iget-object v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-eqz v3, :cond_5 .line 1927 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1928 :goto_0 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v1 if-ge v0, v1, :cond_4 .line 1929 invoke-virtual {p1, v0}, Ljava/lang/String;->charAt(I)C move-result v1 if-le v1, v5, :cond_3 if-eq v1, v6, :cond_3 if-eq v1, v7, :cond_3 if-ne v1, v4, :cond_2 .line 1930 sget-object v2, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 1931 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v2 if-eqz v2, :cond_2 goto :goto_1 .line 1935 :cond_2 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V goto :goto_2 .line 1932 :cond_3 :goto_1 invoke-virtual {p0, v6}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V .line 1933 sget-object v2, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v1, v2, v1 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V :goto_2 add-int/lit8 v0, v0, 0x1 goto :goto_0 .line 1938 :cond_4 invoke-virtual {p0, v7}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->write(I)V return-void .line 1941 :cond_5 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1944 :cond_6 iget v3, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 v8, 0x1 add-int/2addr v3, v8 add-int v9, v3, v1 .line 1947 iget-object v10, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C iget v11, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I aput-char v7, v10, v11 .line 1948 iget-object v10, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C invoke-virtual {p1, v0, v1, v10, v3}, Ljava/lang/String;->getChars(II[CI)V .line 1949 iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I const/4 p1, -0x1 move p1, v3 const/4 v1, -0x1 const/4 v10, 0x0 :goto_3 if-ge p1, v9, :cond_9 .line 1955 iget-object v11, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char v11, v11, p1 if-le v11, v5, :cond_7 if-eq v11, v6, :cond_7 if-eq v11, v7, :cond_7 if-ne v11, v4, :cond_8 .line 1956 sget-object v12, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 1957 invoke-virtual {p0, v12}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v12 if-eqz v12, :cond_8 :cond_7 add-int/lit8 v0, v0, 0x1 move v1, p1 move v10, v11 :cond_8 add-int/lit8 p1, p1, 0x1 goto :goto_3 :cond_9 add-int/2addr v2, v0 .line 1965 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C array-length p1, p1 if-le v2, p1, :cond_a .line 1966 invoke-virtual {p0, v2}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->expandCapacity(I)V .line 1968 :cond_a iput v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->count:I if-ne v0, v8, :cond_b .line 1971 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v0, v1, 0x1 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v3, v1, 0x2 sub-int/2addr v9, v1 sub-int/2addr v9, v8 invoke-static {p1, v0, v2, v3, v9}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1972 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v6, p1, v1 .line 1973 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v1, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v1, v1, v10 aput-char v1, p1, v0 goto :goto_5 :cond_b if-le v0, v8, :cond_e .line 1975 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v0, v1, 0x1 iget-object v2, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v1, 0x2 sub-int v12, v9, v1 sub-int/2addr v12, v8 invoke-static {p1, v0, v2, v11, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1976 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v6, p1, v1 .line 1977 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v1, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char v1, v1, v10 aput-char v1, p1, v0 add-int/2addr v9, v8 add-int/lit8 v0, v0, -0x2 :goto_4 if-lt v0, v3, :cond_e .line 1980 iget-object p1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aget-char p1, p1, v0 if-le p1, v5, :cond_c if-eq p1, v6, :cond_c if-eq p1, v7, :cond_c if-ne p1, v4, :cond_d .line 1982 sget-object v1, Lcom/alibaba/fastjson/serializer/SerializerFeature;->WriteSlashAsSpecial:Lcom/alibaba/fastjson/serializer/SerializerFeature; .line 1983 invoke-virtual {p0, v1}, Lcom/alibaba/fastjson/serializer/SerializeWriter;->isEnabled(Lcom/alibaba/fastjson/serializer/SerializerFeature;)Z move-result v1 if-eqz v1, :cond_d .line 1984 :cond_c iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v2, v0, 0x1 iget-object v10, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C add-int/lit8 v11, v0, 0x2 sub-int v12, v9, v0 sub-int/2addr v12, v8 invoke-static {v1, v2, v10, v11, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 1985 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C aput-char v6, v1, v0 .line 1986 iget-object v1, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->buf:[C sget-object v10, Lcom/alibaba/fastjson/util/IOUtils;->replaceChars:[C aget-char p1, v10, p1 aput-char p1, v1, v2 add-int/lit8 v9, v9, 0x1 :cond_d add-int/lit8 v0, v0, -0x1 goto :goto_4 .line 1992 :cond_e :goto_5 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, v8 aput-char v7, p1, v0 return-void .end method .method public writeTo(Ljava/io/OutputStream;Ljava/lang/String;)V .locals 0 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 334 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 .locals 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 338 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_0 .line 341 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 {v0, p2}, Ljava/lang/String;->getBytes(Ljava/nio/charset/Charset;)[B move-result-object p2 .line 342 invoke-virtual {p1, p2}, Ljava/io/OutputStream;->write([B)V return-void .line 339 :cond_0 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 .locals 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 327 iget-object v0, p0, Lcom/alibaba/fastjson/serializer/SerializeWriter;->writer:Ljava/io/Writer; if-nez v0, :cond_0 .line 330 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 328 :cond_0 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