ShortArrayCodeOutput.smali
.class public final Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;
.super Lcom/tencent/tinker/android/dx/instruction/CodeCursor;
# instance fields
.field private array:[S
# direct methods
.method public constructor <init>(I)V
.registers 4
invoke-direct {p0}, Lcom/tencent/tinker/android/dx/instruction/CodeCursor;-><init>()V
if-gez p1, :cond_e
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string/jumbo v1, "initSize < 0"
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_e
new-array v0, p1, [S
iput-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
return-void
.end method
.method public constructor <init>([S)V
.registers 4
invoke-direct {p0}, Lcom/tencent/tinker/android/dx/instruction/CodeCursor;-><init>()V
if-nez p1, :cond_e
new-instance v0, Ljava/lang/IllegalArgumentException;
const-string/jumbo v1, "array is null."
invoke-direct {v0, v1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
:cond_e
iput-object p1, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
return-void
.end method
.method private ensureArrayLength(I)V
.registers 6
const/4 v3, 0x0
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
array-length v1, v1
sub-int/2addr v1, v0
if-ge v1, p1, :cond_1d
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
array-length v1, v1
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
array-length v2, v2
shr-int/lit8 v2, v2, 0x1
add-int/2addr v1, v2
new-array v1, v1, [S
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
invoke-static {v2, v3, v1, v3, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
iput-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
:cond_1d
return-void
.end method
# virtual methods
.method public getArray()[S
.registers 5
const/4 v3, 0x0
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v1
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
array-length v0, v0
if-ne v1, v0, :cond_d
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
:goto_c
return-object v0
:cond_d
new-array v0, v1, [S
iget-object v2, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
invoke-static {v2, v3, v0, v3, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
goto :goto_c
.end method
.method public write(S)V
.registers 5
const/4 v2, 0x1
invoke-direct {p0, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->ensureArrayLength(I)V
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->array:[S
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->cursor()I
move-result v1
aput-short p1, v0, v1
invoke-virtual {p0, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->advance(I)V
return-void
.end method
.method public write(SS)V
.registers 3
invoke-virtual {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
return-void
.end method
.method public write(SSS)V
.registers 4
invoke-virtual {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
return-void
.end method
.method public write(SSSS)V
.registers 5
invoke-virtual {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p4}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
return-void
.end method
.method public write(SSSSS)V
.registers 6
invoke-virtual {p0, p1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p4}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
invoke-virtual {p0, p5}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
return-void
.end method
.method public write([B)V
.registers 9
const/4 v2, 0x1
const/4 v1, 0x0
array-length v5, p1
move v4, v1
move v0, v2
move v3, v1
:goto_6
if-ge v4, v5, :cond_1d
aget-byte v6, p1, v4
if-eqz v0, :cond_13
and-int/lit16 v0, v6, 0xff
move v3, v0
move v0, v1
:goto_10
add-int/lit8 v4, v4, 0x1
goto :goto_6
:cond_13
shl-int/lit8 v0, v6, 0x8
or-int/2addr v0, v3
int-to-short v3, v0
invoke-virtual {p0, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
move v3, v0
move v0, v2
goto :goto_10
:cond_1d
if-nez v0, :cond_23
int-to-short v0, v3
invoke-virtual {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
:cond_23
return-void
.end method
.method public write([I)V
.registers 5
array-length v1, p1
const/4 v0, 0x0
:goto_2
if-ge v0, v1, :cond_c
aget v2, p1, v0
invoke-virtual {p0, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeInt(I)V
add-int/lit8 v0, v0, 0x1
goto :goto_2
:cond_c
return-void
.end method
.method public write([J)V
.registers 6
array-length v1, p1
const/4 v0, 0x0
:goto_2
if-ge v0, v1, :cond_c
aget-wide v2, p1, v0
invoke-virtual {p0, v2, v3}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->writeLong(J)V
add-int/lit8 v0, v0, 0x1
goto :goto_2
:cond_c
return-void
.end method
.method public write([S)V
.registers 5
array-length v1, p1
const/4 v0, 0x0
:goto_2
if-ge v0, v1, :cond_c
aget-short v2, p1, v0
invoke-virtual {p0, v2}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
add-int/lit8 v0, v0, 0x1
goto :goto_2
:cond_c
return-void
.end method
.method public writeInt(I)V
.registers 3
int-to-short v0, p1
invoke-virtual {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
shr-int/lit8 v0, p1, 0x10
int-to-short v0, v0
invoke-virtual {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
return-void
.end method
.method public writeLong(J)V
.registers 6
long-to-int v0, p1
int-to-short v0, v0
invoke-virtual {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
const/16 v0, 0x10
shr-long v0, p1, v0
long-to-int v0, v0
int-to-short v0, v0
invoke-virtual {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
const/16 v0, 0x20
shr-long v0, p1, v0
long-to-int v0, v0
int-to-short v0, v0
invoke-virtual {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
const/16 v0, 0x30
shr-long v0, p1, v0
long-to-int v0, v0
int-to-short v0, v0
invoke-virtual {p0, v0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeOutput;->write(S)V
return-void
.end method