ShortArrayCodeInput.smali
.class public final Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;
.super Lcom/tencent/tinker/android/dx/instruction/CodeCursor;
# instance fields
.field private final array:[S
# direct methods
.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/NullPointerException;
const-string/jumbo v1, "array == null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
:cond_e
iput-object p1, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->array:[S
return-void
.end method
# virtual methods
.method public hasMore()Z
.registers 3
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->cursor()I
move-result v0
iget-object v1, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->array:[S
array-length v1, v1
if-ge v0, v1, :cond_b
const/4 v0, 0x1
:goto_a
return v0
:cond_b
const/4 v0, 0x0
goto :goto_a
.end method
.method public read()I
.registers 3
:try_start_0
iget-object v0, p0, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->array:[S
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->cursor()I
move-result v1
aget-short v0, v0, v1
const/4 v1, 0x1
invoke-virtual {p0, v1}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->advance(I)V
:try_end_c
.catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_0 .. :try_end_c} :catch_11
const v1, 0xffff
and-int/2addr v0, v1
return v0
:catch_11
move-exception v0
new-instance v0, Ljava/io/EOFException;
invoke-direct {v0}, Ljava/io/EOFException;-><init>()V
throw v0
.end method
.method public readInt()I
.registers 3
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->read()I
move-result v0
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->read()I
move-result v1
shl-int/lit8 v1, v1, 0x10
or-int/2addr v0, v1
return v0
.end method
.method public readLong()J
.registers 10
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->read()I
move-result v0
int-to-long v0, v0
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->read()I
move-result v2
int-to-long v2, v2
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->read()I
move-result v4
int-to-long v4, v4
invoke-virtual {p0}, Lcom/tencent/tinker/android/dx/instruction/ShortArrayCodeInput;->read()I
move-result v6
int-to-long v6, v6
const/16 v8, 0x10
shl-long/2addr v2, v8
or-long/2addr v0, v2
const/16 v2, 0x20
shl-long v2, v4, v2
or-long/2addr v0, v2
const/16 v2, 0x30
shl-long v2, v6, v2
or-long/2addr v0, v2
return-wide v0
.end method