.class public Lcom/alibaba/fastjson/asm/ByteVector; .super Ljava/lang/Object; .source "ByteVector.java" # instance fields .field data:[B .field length:I # direct methods .method public constructor ()V .locals 1 .line 53 invoke-direct {p0}, Ljava/lang/Object;->()V const/16 v0, 0x40 .line 54 new-array v0, v0, [B iput-object v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B return-void .end method .method public constructor (I)V .locals 0 .line 62 invoke-direct {p0}, Ljava/lang/Object;->()V .line 63 new-array p1, p1, [B iput-object p1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B return-void .end method .method private enlarge(I)V .locals 3 .line 217 iget-object v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B array-length v0, v0 mul-int/lit8 v0, v0, 0x2 .line 218 iget v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/2addr p1, v1 if-le v0, p1, :cond_0 move p1, v0 .line 219 :cond_0 new-array p1, p1, [B .line 220 iget-object v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B iget v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length: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 221 iput-object p1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B return-void .end method # virtual methods .method put11(II)Lcom/alibaba/fastjson/asm/ByteVector; .locals 3 .line 90 iget v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/lit8 v1, v0, 0x2 .line 91 iget-object v2, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B array-length v2, v2 if-le v1, v2, :cond_0 const/4 v1, 0x2 .line 92 invoke-direct {p0, v1}, Lcom/alibaba/fastjson/asm/ByteVector;->enlarge(I)V .line 94 :cond_0 iget-object v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B add-int/lit8 v2, v0, 0x1 int-to-byte p1, p1 .line 95 aput-byte p1, v1, v0 add-int/lit8 p1, v2, 0x1 int-to-byte p2, p2 .line 96 aput-byte p2, v1, v2 .line 97 iput p1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I return-object p0 .end method .method put12(II)Lcom/alibaba/fastjson/asm/ByteVector; .locals 3 .line 127 iget v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/lit8 v1, v0, 0x3 .line 128 iget-object v2, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B array-length v2, v2 if-le v1, v2, :cond_0 const/4 v1, 0x3 .line 129 invoke-direct {p0, v1}, Lcom/alibaba/fastjson/asm/ByteVector;->enlarge(I)V .line 131 :cond_0 iget-object v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B add-int/lit8 v2, v0, 0x1 int-to-byte p1, p1 .line 132 aput-byte p1, v1, v0 add-int/lit8 p1, v2, 0x1 ushr-int/lit8 v0, p2, 0x8 int-to-byte v0, v0 .line 133 aput-byte v0, v1, v2 add-int/lit8 v0, p1, 0x1 int-to-byte p2, p2 .line 134 aput-byte p2, v1, p1 .line 135 iput v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I return-object p0 .end method .method public putByte(I)Lcom/alibaba/fastjson/asm/ByteVector; .locals 3 .line 73 iget v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/lit8 v1, v0, 0x1 .line 74 iget-object v2, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B array-length v2, v2 if-le v1, v2, :cond_0 const/4 v2, 0x1 .line 75 invoke-direct {p0, v2}, Lcom/alibaba/fastjson/asm/ByteVector;->enlarge(I)V .line 77 :cond_0 iget-object v2, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B int-to-byte p1, p1 aput-byte p1, v2, v0 .line 78 iput v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I return-object p0 .end method .method public putByteArray([BII)Lcom/alibaba/fastjson/asm/ByteVector; .locals 2 .line 201 iget v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/2addr v0, p3 iget-object v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B array-length v1, v1 if-le v0, v1, :cond_0 .line 202 invoke-direct {p0, p3}, Lcom/alibaba/fastjson/asm/ByteVector;->enlarge(I)V :cond_0 if-eqz p1, :cond_1 .line 205 iget-object v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B iget v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I invoke-static {p1, p2, v0, v1, p3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 207 :cond_1 iget p1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/2addr p1, p3 iput p1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I return-object p0 .end method .method public putInt(I)Lcom/alibaba/fastjson/asm/ByteVector; .locals 4 .line 146 iget v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/lit8 v1, v0, 0x4 .line 147 iget-object v2, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B array-length v2, v2 if-le v1, v2, :cond_0 const/4 v1, 0x4 .line 148 invoke-direct {p0, v1}, Lcom/alibaba/fastjson/asm/ByteVector;->enlarge(I)V .line 150 :cond_0 iget-object v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B add-int/lit8 v2, v0, 0x1 ushr-int/lit8 v3, p1, 0x18 int-to-byte v3, v3 .line 151 aput-byte v3, v1, v0 add-int/lit8 v0, v2, 0x1 ushr-int/lit8 v3, p1, 0x10 int-to-byte v3, v3 .line 152 aput-byte v3, v1, v2 add-int/lit8 v2, v0, 0x1 ushr-int/lit8 v3, p1, 0x8 int-to-byte v3, v3 .line 153 aput-byte v3, v1, v0 add-int/lit8 v0, v2, 0x1 int-to-byte p1, p1 .line 154 aput-byte p1, v1, v2 .line 155 iput v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I return-object p0 .end method .method public putShort(I)Lcom/alibaba/fastjson/asm/ByteVector; .locals 4 .line 108 iget v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/lit8 v1, v0, 0x2 .line 109 iget-object v2, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B array-length v2, v2 if-le v1, v2, :cond_0 const/4 v1, 0x2 .line 110 invoke-direct {p0, v1}, Lcom/alibaba/fastjson/asm/ByteVector;->enlarge(I)V .line 112 :cond_0 iget-object v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B add-int/lit8 v2, v0, 0x1 ushr-int/lit8 v3, p1, 0x8 int-to-byte v3, v3 .line 113 aput-byte v3, v1, v0 add-int/lit8 v0, v2, 0x1 int-to-byte p1, p1 .line 114 aput-byte p1, v1, v2 .line 115 iput v0, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I return-object p0 .end method .method public putUTF8(Ljava/lang/String;)Lcom/alibaba/fastjson/asm/ByteVector; .locals 6 .line 166 invoke-virtual {p1}, Ljava/lang/String;->length()I move-result v0 .line 167 iget v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I add-int/lit8 v2, v1, 0x2 add-int/2addr v2, v0 .line 168 iget-object v3, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B array-length v3, v3 if-le v2, v3, :cond_0 add-int/lit8 v2, v0, 0x2 .line 169 invoke-direct {p0, v2}, Lcom/alibaba/fastjson/asm/ByteVector;->enlarge(I)V .line 171 :cond_0 iget-object v2, p0, Lcom/alibaba/fastjson/asm/ByteVector;->data:[B add-int/lit8 v3, v1, 0x1 ushr-int/lit8 v4, v0, 0x8 int-to-byte v4, v4 .line 178 aput-byte v4, v2, v1 add-int/lit8 v1, v3, 0x1 int-to-byte v4, v0 .line 179 aput-byte v4, v2, v3 const/4 v3, 0x0 :goto_0 if-ge v3, v0, :cond_2 .line 181 invoke-virtual {p1, v3}, Ljava/lang/String;->charAt(I)C move-result v4 const/4 v5, 0x1 if-lt v4, v5, :cond_1 const/16 v5, 0x7f if-gt v4, v5, :cond_1 add-int/lit8 v5, v1, 0x1 int-to-byte v4, v4 .line 183 aput-byte v4, v2, v1 add-int/lit8 v3, v3, 0x1 move v1, v5 goto :goto_0 .line 185 :cond_1 new-instance p1, Ljava/lang/UnsupportedOperationException; invoke-direct {p1}, Ljava/lang/UnsupportedOperationException;->()V throw p1 .line 188 :cond_2 iput v1, p0, Lcom/alibaba/fastjson/asm/ByteVector;->length:I return-object p0 .end method