CharArrayKeyAnalyzer.smali
.class public Lorg/ardverk/collection/CharArrayKeyAnalyzer;
.super Ldxoptimizer/csk;
# interfaces
.implements Ljava/io/Serializable;
# annotations
.annotation system Ldalvik/annotation/Signature;
value = {
"Ldxoptimizer/csk",
"<[C>;",
"Ljava/io/Serializable;"
}
.end annotation
# static fields
.field public static final BYTE:Lorg/ardverk/collection/CharArrayKeyAnalyzer;
.field public static final CHAR:Lorg/ardverk/collection/CharArrayKeyAnalyzer;
.field public static final INSTANCE:Lorg/ardverk/collection/CharArrayKeyAnalyzer;
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.end field
.field private static final serialVersionUID:J = 0x97b6a3cd6ea3aa8L
# instance fields
.field private final msb:I
.field private final size:I
# direct methods
.method static constructor <clinit>()V
.registers 2
new-instance v0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;
const/16 v1, 0x10
invoke-direct {v0, v1}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;-><init>(I)V
sput-object v0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->CHAR:Lorg/ardverk/collection/CharArrayKeyAnalyzer;
new-instance v0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;
const/16 v1, 0x8
invoke-direct {v0, v1}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;-><init>(I)V
sput-object v0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->BYTE:Lorg/ardverk/collection/CharArrayKeyAnalyzer;
sget-object v0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->CHAR:Lorg/ardverk/collection/CharArrayKeyAnalyzer;
sput-object v0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->INSTANCE:Lorg/ardverk/collection/CharArrayKeyAnalyzer;
return-void
.end method
.method protected constructor <init>(I)V
.registers 4
const/4 v0, 0x1
add-int/lit8 v1, p1, -0x1
shl-int/2addr v0, v1
invoke-direct {p0, p1, v0}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;-><init>(II)V
return-void
.end method
.method protected constructor <init>(II)V
.registers 3
invoke-direct {p0}, Ldxoptimizer/csk;-><init>()V
iput p1, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->size:I
iput p2, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->msb:I
return-void
.end method
.method private mask(I)I
.registers 3
iget v0, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->msb:I
ushr-int/2addr v0, p1
return v0
.end method
.method private valueAt([CI)C
.registers 6
array-length v0, p1
if-ge p2, v0, :cond_f
aget-char v0, p1, p2
iget v1, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->size:I
const/16 v2, 0x8
if-ne v1, v2, :cond_e
and-int/lit16 v0, v0, 0xff
int-to-char v0, v0
:cond_e
:goto_e
return v0
:cond_f
const/4 v0, 0x0
goto :goto_e
.end method
# virtual methods
.method public bridge synthetic bitIndex(Ljava/lang/Object;Ljava/lang/Object;)I
.registers 4
check-cast p1, [C
check-cast p2, [C
invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->bitIndex([C[C)I
move-result v0
return v0
.end method
.method public bitIndex([C[C)I
.registers 11
const/4 v1, 0x0
array-length v0, p1
array-length v2, p2
invoke-static {v0, v2}, Ljava/lang/Math;->max(II)I
move-result v4
const/4 v2, 0x1
move v3, v1
:goto_9
if-ge v3, v4, :cond_33
invoke-direct {p0, p1, v3}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->valueAt([CI)C
move-result v5
invoke-direct {p0, p2, v3}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->valueAt([CI)C
move-result v0
if-eq v5, v0, :cond_2b
xor-int v6, v5, v0
move v0, v1
:goto_18
iget v7, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->size:I
if-ge v0, v7, :cond_2b
invoke-direct {p0, v0}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->mask(I)I
move-result v7
and-int/2addr v7, v6
if-eqz v7, :cond_28
iget v1, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->size:I
mul-int/2addr v1, v3
add-int/2addr v0, v1
:goto_27
return v0
:cond_28
add-int/lit8 v0, v0, 0x1
goto :goto_18
:cond_2b
if-eqz v5, :cond_39
move v0, v1
:goto_2e
add-int/lit8 v2, v3, 0x1
move v3, v2
move v2, v0
goto :goto_9
:cond_33
if-eqz v2, :cond_37
const/4 v0, -0x1
goto :goto_27
:cond_37
const/4 v0, -0x2
goto :goto_27
:cond_39
move v0, v2
goto :goto_2e
.end method
.method public bridge synthetic compare(Ljava/lang/Object;Ljava/lang/Object;)I
.registers 4
check-cast p1, [C
check-cast p2, [C
invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->compare([C[C)I
move-result v0
return v0
.end method
.method public compare([C[C)I
.registers 7
const/4 v0, 0x0
if-nez p1, :cond_8
if-nez p2, :cond_6
:cond_5
:goto_5
return v0
:cond_6
const/4 v0, -0x1
goto :goto_5
:cond_8
if-nez p2, :cond_e
if-eqz p1, :cond_5
const/4 v0, 0x1
goto :goto_5
:cond_e
array-length v1, p1
array-length v2, p2
if-eq v1, v2, :cond_16
array-length v0, p1
array-length v1, p2
sub-int/2addr v0, v1
goto :goto_5
:cond_16
move v1, v0
:goto_17
array-length v2, p1
if-ge v1, v2, :cond_5
aget-char v2, p1, v1
and-int/lit16 v2, v2, 0xff
aget-char v3, p2, v1
and-int/lit16 v3, v3, 0xff
sub-int/2addr v2, v3
if-eqz v2, :cond_27
move v0, v2
goto :goto_5
:cond_27
add-int/lit8 v1, v1, 0x1
goto :goto_17
.end method
.method public bridge synthetic isBitSet(Ljava/lang/Object;I)Z
.registers 4
check-cast p1, [C
invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->isBitSet([CI)Z
move-result v0
return v0
.end method
.method public isBitSet([CI)Z
.registers 6
const/4 v0, 0x0
invoke-virtual {p0, p1}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->lengthInBits([C)I
move-result v1
if-lt p2, v1, :cond_8
:cond_7
:goto_7
return v0
:cond_8
iget v1, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->size:I
div-int v1, p2, v1
iget v2, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->size:I
rem-int v2, p2, v2
aget-char v1, p1, v1
invoke-direct {p0, v2}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->mask(I)I
move-result v2
and-int/2addr v1, v2
if-eqz v1, :cond_7
const/4 v0, 0x1
goto :goto_7
.end method
.method public bridge synthetic isPrefix(Ljava/lang/Object;Ljava/lang/Object;)Z
.registers 4
check-cast p1, [C
check-cast p2, [C
invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->isPrefix([C[C)Z
move-result v0
return v0
.end method
.method public isPrefix([C[C)Z
.registers 7
const/4 v1, 0x0
array-length v0, p1
array-length v2, p2
if-ge v0, v2, :cond_6
:cond_5
:goto_5
return v1
:cond_6
move v0, v1
:goto_7
array-length v2, p2
if-ge v0, v2, :cond_13
aget-char v2, p1, v0
aget-char v3, p2, v0
if-ne v2, v3, :cond_5
add-int/lit8 v0, v0, 0x1
goto :goto_7
:cond_13
const/4 v1, 0x1
goto :goto_5
.end method
.method public bridge synthetic lengthInBits(Ljava/lang/Object;)I
.registers 3
check-cast p1, [C
invoke-virtual {p0, p1}, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->lengthInBits([C)I
move-result v0
return v0
.end method
.method public lengthInBits([C)I
.registers 4
array-length v0, p1
iget v1, p0, Lorg/ardverk/collection/CharArrayKeyAnalyzer;->size:I
mul-int/2addr v0, v1
return v0
.end method