CompareUtils.smali
.class public final Lcom/tencent/tinker/android/dex/util/CompareUtils;
.super Ljava/lang/Object;
# direct methods
.method private constructor <init>()V
.registers 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static aArrCompare([Ljava/lang/Comparable;[Ljava/lang/Comparable;)I
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"<T::",
"Ljava/lang/Comparable",
"<TT;>;>([TT;[TT;)I"
}
.end annotation
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget-object v0, p0, v2
aget-object v4, p1, v2
invoke-interface {v0, v4}, Ljava/lang/Comparable;->compareTo(Ljava/lang/Object;)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static aArrCompare([Ljava/lang/Object;[Ljava/lang/Object;Ljava/util/Comparator;)I
.registers 8
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">([TT;[TT;",
"Ljava/util/Comparator",
"<TT;>;)I"
}
.end annotation
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget-object v0, p0, v2
aget-object v4, p1, v2
invoke-interface {p2, v0, v4}, Ljava/util/Comparator;->compare(Ljava/lang/Object;Ljava/lang/Object;)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static sArrCompare([B[B)I
.registers 7
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget-byte v0, p0, v2
aget-byte v4, p1, v2
invoke-static {v0, v4}, Lcom/tencent/tinker/android/dex/util/CompareUtils;->sCompare(BB)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static sArrCompare([I[I)I
.registers 7
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget v0, p0, v2
aget v4, p1, v2
invoke-static {v0, v4}, Lcom/tencent/tinker/android/dex/util/CompareUtils;->sCompare(II)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static sArrCompare([J[J)I
.registers 10
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget-wide v4, p0, v2
aget-wide v6, p1, v2
invoke-static {v4, v5, v6, v7}, Lcom/tencent/tinker/android/dex/util/CompareUtils;->sCompare(JJ)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static sArrCompare([S[S)I
.registers 7
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget-short v0, p0, v2
aget-short v4, p1, v2
invoke-static {v0, v4}, Lcom/tencent/tinker/android/dex/util/CompareUtils;->sCompare(SS)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static sCompare(BB)I
.registers 3
if-ne p0, p1, :cond_4
const/4 v0, 0x0
:goto_3
return v0
:cond_4
if-ge p0, p1, :cond_8
const/4 v0, -0x1
goto :goto_3
:cond_8
const/4 v0, 0x1
goto :goto_3
.end method
.method public static sCompare(II)I
.registers 3
if-ne p0, p1, :cond_4
const/4 v0, 0x0
:goto_3
return v0
:cond_4
if-ge p0, p1, :cond_8
const/4 v0, -0x1
goto :goto_3
:cond_8
const/4 v0, 0x1
goto :goto_3
.end method
.method public static sCompare(JJ)I
.registers 6
cmp-long v0, p0, p2
if-nez v0, :cond_6
const/4 v0, 0x0
:goto_5
return v0
:cond_6
cmp-long v0, p0, p2
if-gez v0, :cond_c
const/4 v0, -0x1
goto :goto_5
:cond_c
const/4 v0, 0x1
goto :goto_5
.end method
.method public static sCompare(SS)I
.registers 3
if-ne p0, p1, :cond_4
const/4 v0, 0x0
:goto_3
return v0
:cond_4
if-ge p0, p1, :cond_8
const/4 v0, -0x1
goto :goto_3
:cond_8
const/4 v0, 0x1
goto :goto_3
.end method
.method public static uArrCompare([B[B)I
.registers 7
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget-byte v0, p0, v2
aget-byte v4, p1, v2
invoke-static {v0, v4}, Lcom/tencent/tinker/android/dex/util/CompareUtils;->uCompare(BB)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static uArrCompare([I[I)I
.registers 7
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget v0, p0, v2
aget v4, p1, v2
invoke-static {v0, v4}, Lcom/tencent/tinker/android/dex/util/CompareUtils;->uCompare(II)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static uArrCompare([S[S)I
.registers 7
const/4 v1, 0x0
array-length v3, p0
array-length v0, p1
if-ge v3, v0, :cond_7
const/4 v0, -0x1
:cond_6
:goto_6
return v0
:cond_7
if-le v3, v0, :cond_b
const/4 v0, 0x1
goto :goto_6
:cond_b
move v2, v1
:goto_c
if-ge v2, v3, :cond_1c
aget-short v0, p0, v2
aget-short v4, p1, v2
invoke-static {v0, v4}, Lcom/tencent/tinker/android/dex/util/CompareUtils;->uCompare(SS)I
move-result v0
if-nez v0, :cond_6
add-int/lit8 v0, v2, 0x1
move v2, v0
goto :goto_c
:cond_1c
move v0, v1
goto :goto_6
.end method
.method public static uCompare(BB)I
.registers 4
if-ne p0, p1, :cond_4
const/4 v0, 0x0
:goto_3
return v0
:cond_4
and-int/lit16 v0, p0, 0xff
and-int/lit16 v1, p1, 0xff
if-ge v0, v1, :cond_c
const/4 v0, -0x1
goto :goto_3
:cond_c
const/4 v0, 0x1
goto :goto_3
.end method
.method public static uCompare(II)I
.registers 8
const-wide v4, 0xffffffffL
if-ne p0, p1, :cond_9
const/4 v0, 0x0
:goto_8
return v0
:cond_9
int-to-long v0, p0
and-long/2addr v0, v4
int-to-long v2, p1
and-long/2addr v2, v4
cmp-long v0, v0, v2
if-gez v0, :cond_13
const/4 v0, -0x1
goto :goto_8
:cond_13
const/4 v0, 0x1
goto :goto_8
.end method
.method public static uCompare(SS)I
.registers 4
const v1, 0xffff
if-ne p0, p1, :cond_7
const/4 v0, 0x0
:goto_6
return v0
:cond_7
and-int v0, p0, v1
and-int/2addr v1, p1
if-ge v0, v1, :cond_e
const/4 v0, -0x1
goto :goto_6
:cond_e
const/4 v0, 0x1
goto :goto_6
.end method