.class public Landroidx/core/util/Pools$SimplePool; .super Ljava/lang/Object; .source "Pools.java" # interfaces .implements Landroidx/core/util/Pools$Pool; # annotations .annotation system Ldalvik/annotation/EnclosingClass; value = Landroidx/core/util/Pools; .end annotation .annotation system Ldalvik/annotation/InnerClass; accessFlags = 0x9 name = "SimplePool" .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/lang/Object;", "Landroidx/core/util/Pools$Pool<", "TT;>;" } .end annotation # instance fields .field private final mPool:[Ljava/lang/Object; .field private mPoolSize:I # direct methods .method public constructor (I)V .registers 3 .line 94 invoke-direct {p0}, Ljava/lang/Object;->()V if-lez p1, :cond_a .line 98 new-array p1, p1, [Ljava/lang/Object; iput-object p1, p0, Landroidx/core/util/Pools$SimplePool;->mPool:[Ljava/lang/Object; return-void .line 96 :cond_a new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "The max pool size must be > 0" invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method private isInPool(Ljava/lang/Object;)Z .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)Z" } .end annotation const/4 v0, 0x0 move v1, v0 .line 128 :goto_2 iget v2, p0, Landroidx/core/util/Pools$SimplePool;->mPoolSize:I if-ge v1, v2, :cond_11 .line 129 iget-object v2, p0, Landroidx/core/util/Pools$SimplePool;->mPool:[Ljava/lang/Object; aget-object v2, v2, v1 if-ne v2, p1, :cond_e const/4 p1, 0x1 return p1 :cond_e add-int/lit8 v1, v1, 0x1 goto :goto_2 :cond_11 return v0 .end method # virtual methods .method public acquire()Ljava/lang/Object; .registers 6 .annotation system Ldalvik/annotation/Signature; value = { "()TT;" } .end annotation .line 104 iget v0, p0, Landroidx/core/util/Pools$SimplePool;->mPoolSize:I const/4 v1, 0x0 if-lez v0, :cond_12 add-int/lit8 v2, v0, -0x1 .line 106 iget-object v3, p0, Landroidx/core/util/Pools$SimplePool;->mPool:[Ljava/lang/Object; aget-object v4, v3, v2 .line 107 aput-object v1, v3, v2 add-int/lit8 v0, v0, -0x1 .line 108 iput v0, p0, Landroidx/core/util/Pools$SimplePool;->mPoolSize:I return-object v4 :cond_12 return-object v1 .end method .method public release(Ljava/lang/Object;)Z .registers 5 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)Z" } .end annotation .line 116 invoke-direct {p0, p1}, Landroidx/core/util/Pools$SimplePool;->isInPool(Ljava/lang/Object;)Z move-result v0 if-nez v0, :cond_16 .line 119 iget v0, p0, Landroidx/core/util/Pools$SimplePool;->mPoolSize:I iget-object v1, p0, Landroidx/core/util/Pools$SimplePool;->mPool:[Ljava/lang/Object; array-length v2, v1 if-ge v0, v2, :cond_14 .line 120 aput-object p1, v1, v0 const/4 p1, 0x1 add-int/2addr v0, p1 .line 121 iput v0, p0, Landroidx/core/util/Pools$SimplePool;->mPoolSize:I return p1 :cond_14 const/4 p1, 0x0 return p1 .line 117 :cond_16 new-instance p1, Ljava/lang/IllegalStateException; const-string v0, "Already in the pool!" invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .end method