LongKeyAnalyzer.smali

.class public Lorg/ardverk/collection/LongKeyAnalyzer;
.super Ldxoptimizer/csk;

# interfaces
.implements Ljava/io/Serializable;


# annotations
.annotation system Ldalvik/annotation/Signature;
    value = {
        "Ldxoptimizer/csk",
        "<",
        "Ljava/lang/Long;",
        ">;",
        "Ljava/io/Serializable;"
    }
.end annotation


# static fields
.field public static final INSTANCE:Lorg/ardverk/collection/LongKeyAnalyzer;

.field private static final MSB:J = -0x80000000L

.field private static final serialVersionUID:J = -0x69a280f5f2c36a9eL


# direct methods
.method static constructor <clinit>()V
    .registers 1

    new-instance v0, Lorg/ardverk/collection/LongKeyAnalyzer;

    invoke-direct {v0}, Lorg/ardverk/collection/LongKeyAnalyzer;-><init>()V

    sput-object v0, Lorg/ardverk/collection/LongKeyAnalyzer;->INSTANCE:Lorg/ardverk/collection/LongKeyAnalyzer;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

    invoke-direct {p0}, Ldxoptimizer/csk;-><init>()V

    return-void
.end method

.method private static mask(I)J
    .registers 3

    const-wide/32 v0, -0x80000000

    ushr-long/2addr v0, p0

    return-wide v0
.end method


# virtual methods
.method public bitIndex(Ljava/lang/Long;Ljava/lang/Long;)I
    .registers 11

    const-wide/16 v6, 0x0

    invoke-virtual {p1}, Ljava/lang/Long;->longValue()J

    move-result-wide v0

    cmp-long v2, v0, v6

    if-nez v2, :cond_c

    const/4 v0, -0x1

    :cond_b
    :goto_b
    return v0

    :cond_c
    invoke-virtual {p2}, Ljava/lang/Long;->longValue()J

    move-result-wide v2

    cmp-long v4, v0, v2

    if-eqz v4, :cond_26

    xor-long/2addr v2, v0

    const/4 v0, 0x0

    :goto_16
    const/16 v1, 0x40

    if-ge v0, v1, :cond_26

    invoke-static {v0}, Lorg/ardverk/collection/LongKeyAnalyzer;->mask(I)J

    move-result-wide v4

    and-long/2addr v4, v2

    cmp-long v1, v4, v6

    if-nez v1, :cond_b

    add-int/lit8 v0, v0, 0x1

    goto :goto_16

    :cond_26
    const/4 v0, -0x2

    goto :goto_b
.end method

.method public bridge synthetic bitIndex(Ljava/lang/Object;Ljava/lang/Object;)I
    .registers 4

    check-cast p1, Ljava/lang/Long;

    check-cast p2, Ljava/lang/Long;

    invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/LongKeyAnalyzer;->bitIndex(Ljava/lang/Long;Ljava/lang/Long;)I

    move-result v0

    return v0
.end method

.method public isBitSet(Ljava/lang/Long;I)Z
    .registers 7

    invoke-virtual {p1}, Ljava/lang/Long;->longValue()J

    move-result-wide v0

    invoke-static {p2}, Lorg/ardverk/collection/LongKeyAnalyzer;->mask(I)J

    move-result-wide v2

    and-long/2addr v0, v2

    const-wide/16 v2, 0x0

    cmp-long v0, v0, v2

    if-eqz v0, :cond_11

    const/4 v0, 0x1

    :goto_10
    return v0

    :cond_11
    const/4 v0, 0x0

    goto :goto_10
.end method

.method public bridge synthetic isBitSet(Ljava/lang/Object;I)Z
    .registers 4

    check-cast p1, Ljava/lang/Long;

    invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/LongKeyAnalyzer;->isBitSet(Ljava/lang/Long;I)Z

    move-result v0

    return v0
.end method

.method public isPrefix(Ljava/lang/Long;Ljava/lang/Long;)Z
    .registers 4

    invoke-virtual {p1, p2}, Ljava/lang/Long;->equals(Ljava/lang/Object;)Z

    move-result v0

    return v0
.end method

.method public bridge synthetic isPrefix(Ljava/lang/Object;Ljava/lang/Object;)Z
    .registers 4

    check-cast p1, Ljava/lang/Long;

    check-cast p2, Ljava/lang/Long;

    invoke-virtual {p0, p1, p2}, Lorg/ardverk/collection/LongKeyAnalyzer;->isPrefix(Ljava/lang/Long;Ljava/lang/Long;)Z

    move-result v0

    return v0
.end method

.method public lengthInBits(Ljava/lang/Long;)I
    .registers 3

    const/16 v0, 0x40

    return v0
.end method

.method public bridge synthetic lengthInBits(Ljava/lang/Object;)I
    .registers 3

    check-cast p1, Ljava/lang/Long;

    invoke-virtual {p0, p1}, Lorg/ardverk/collection/LongKeyAnalyzer;->lengthInBits(Ljava/lang/Long;)I

    move-result v0

    return v0
.end method