f.smali

.class public Lb3/f;
.super Ljava/lang/Object;
.source "ObjectPool.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lb3/f$a;
    }
.end annotation

.annotation system Ldalvik/annotation/Signature;
    value = {
        "<T:",
        "Lb3/f$a;",
        ">",
        "Ljava/lang/Object;"
    }
.end annotation


# static fields
.field public static g:I


# instance fields
.field public a:I

.field public b:I

.field public c:[Ljava/lang/Object;

.field public d:I

.field public e:Lb3/f$a;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "TT;"
        }
    .end annotation
.end field

.field public f:F


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

    return-void
.end method

.method public constructor <init>(ILb3/f$a;)V
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "(ITT;)V"
        }
    .end annotation

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    if-lez p1, :cond_18

    iput p1, p0, Lb3/f;->b:I

    new-array p1, p1, [Ljava/lang/Object;

    iput-object p1, p0, Lb3/f;->c:[Ljava/lang/Object;

    const/4 p1, 0x0

    iput p1, p0, Lb3/f;->d:I

    iput-object p2, p0, Lb3/f;->e:Lb3/f$a;

    const/high16 p1, 0x3f800000    # 1.0f

    iput p1, p0, Lb3/f;->f:F

    invoke-virtual {p0}, Lb3/f;->b()V

    return-void

    :cond_18
    new-instance p1, Ljava/lang/IllegalArgumentException;

    const-string p2, "Object Pool must be instantiated with a capacity greater than 0!"

    invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

.method public static declared-synchronized a(ILb3/f$a;)Lb3/f;
    .registers 4

    const-class v0, Lb3/f;

    monitor-enter v0

    :try_start_3
    new-instance v1, Lb3/f;

    invoke-direct {v1, p0, p1}, Lb3/f;-><init>(ILb3/f$a;)V

    sget p0, Lb3/f;->g:I

    iput p0, v1, Lb3/f;->a:I

    sget p0, Lb3/f;->g:I

    add-int/lit8 p0, p0, 0x1

    sput p0, Lb3/f;->g:I
    :try_end_12
    .catchall {:try_start_3 .. :try_end_12} :catchall_14

    monitor-exit v0

    return-object v1

    :catchall_14
    move-exception p0

    monitor-exit v0

    throw p0
.end method


# virtual methods
.method public declared-synchronized a()Lb3/f$a;
    .registers 3
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()TT;"
        }
    .end annotation

    monitor-enter p0

    :try_start_1
    iget v0, p0, Lb3/f;->d:I

    const/4 v1, -0x1

    if-ne v0, v1, :cond_10

    iget v0, p0, Lb3/f;->f:F

    const/4 v1, 0x0

    cmpl-float v0, v0, v1

    if-lez v0, :cond_10

    invoke-virtual {p0}, Lb3/f;->b()V

    :cond_10
    iget-object v0, p0, Lb3/f;->c:[Ljava/lang/Object;

    iget v1, p0, Lb3/f;->d:I

    aget-object v0, v0, v1

    check-cast v0, Lb3/f$a;

    sget v1, Lb3/f$a;->b:I

    iput v1, v0, Lb3/f$a;->a:I

    iget v1, p0, Lb3/f;->d:I

    add-int/lit8 v1, v1, -0x1

    iput v1, p0, Lb3/f;->d:I
    :try_end_22
    .catchall {:try_start_1 .. :try_end_22} :catchall_24

    monitor-exit p0

    return-object v0

    :catchall_24
    move-exception v0

    monitor-exit p0

    throw v0
.end method

.method public final a(F)V
    .registers 6

    iget v0, p0, Lb3/f;->b:I

    int-to-float v1, v0

    mul-float v1, v1, p1

    float-to-int p1, v1

    const/4 v1, 0x1

    if-ge p1, v1, :cond_b

    const/4 v0, 0x1

    goto :goto_f

    :cond_b
    if-le p1, v0, :cond_e

    goto :goto_f

    :cond_e
    move v0, p1

    :goto_f
    const/4 p1, 0x0

    :goto_10
    if-ge p1, v0, :cond_1f

    iget-object v2, p0, Lb3/f;->c:[Ljava/lang/Object;

    iget-object v3, p0, Lb3/f;->e:Lb3/f$a;

    invoke-virtual {v3}, Lb3/f$a;->a()Lb3/f$a;

    move-result-object v3

    aput-object v3, v2, p1

    add-int/lit8 p1, p1, 0x1

    goto :goto_10

    :cond_1f
    sub-int/2addr v0, v1

    iput v0, p0, Lb3/f;->d:I

    return-void
.end method

.method public declared-synchronized a(Lb3/f$a;)V
    .registers 5
    .annotation system Ld