.class public Landroidx/core/util/Pools$SimplePool; .super Ljava/lang/Object; .source "SourceFile" # 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 .annotation build Lkotlin/jvm/internal/SourceDebugExtension; value = { "SMAP\nPools.kt\nKotlin\n*S Kotlin\n*F\n+ 1 Pools.kt\nandroidx/core/util/Pools$SimplePool\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,133:1\n1#2:134\n*E\n" } .end annotation # instance fields .field private final pool:[Ljava/lang/Object; .field private poolSize:I # direct methods .method public constructor (I)V .locals 1 .param p1 # I .annotation build Landroidx/annotation/IntRange; from = 0x1L .end annotation .end param .line 68 invoke-direct {p0}, Ljava/lang/Object;->()V if-lez p1, :cond_0 .line 77 new-array p1, p1, [Ljava/lang/Object; iput-object p1, p0, Landroidx/core/util/Pools$SimplePool;->pool:[Ljava/lang/Object; return-void .line 76 :cond_0 new-instance p1, Ljava/lang/IllegalArgumentException; const-string v0, "The max pool size must be > 0" invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method private final isInPool(Ljava/lang/Object;)Z .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)Z" } .end annotation iget v0, p0, Landroidx/core/util/Pools$SimplePool;->poolSize:I const/4 v1, 0x0 move v2, v1 :goto_0 if-ge v2, v0, :cond_1 iget-object v3, p0, Landroidx/core/util/Pools$SimplePool;->pool:[Ljava/lang/Object; .line 103 aget-object v3, v3, v2 if-ne v3, p1, :cond_0 const/4 p1, 0x1 return p1 :cond_0 add-int/lit8 v2, v2, 0x1 goto :goto_0 :cond_1 return v1 .end method # virtual methods .method public acquire()Ljava/lang/Object; .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "()TT;" } .end annotation iget v0, p0, Landroidx/core/util/Pools$SimplePool;->poolSize:I const/4 v1, 0x0 if-lez v0, :cond_0 add-int/lit8 v0, v0, -0x1 iget-object v2, p0, Landroidx/core/util/Pools$SimplePool;->pool:[Ljava/lang/Object; .line 83 aget-object v2, v2, v0 const-string v3, "null cannot be cast to non-null type T of androidx.core.util.Pools.SimplePool" invoke-static {v2, v3}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;Ljava/lang/String;)V iget-object v3, p0, Landroidx/core/util/Pools$SimplePool;->pool:[Ljava/lang/Object; .line 84 aput-object v1, v3, v0 iget v0, p0, Landroidx/core/util/Pools$SimplePool;->poolSize:I add-int/lit8 v0, v0, -0x1 iput v0, p0, Landroidx/core/util/Pools$SimplePool;->poolSize:I return-object v2 :cond_0 return-object v1 .end method .method public release(Ljava/lang/Object;)Z .locals 4 .annotation system Ldalvik/annotation/Signature; value = { "(TT;)Z" } .end annotation const-string v0, "instance" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 92 invoke-direct {p0, p1}, Landroidx/core/util/Pools$SimplePool;->isInPool(Ljava/lang/Object;)Z move-result v0 const/4 v1, 0x1 xor-int/2addr v0, v1 if-eqz v0, :cond_1 iget v0, p0, Landroidx/core/util/Pools$SimplePool;->poolSize:I iget-object v2, p0, Landroidx/core/util/Pools$SimplePool;->pool:[Ljava/lang/Object; .line 93 array-length v3, v2 if-ge v0, v3, :cond_0 .line 94 aput-object p1, v2, v0 add-int/2addr v0, v1 iput v0, p0, Landroidx/core/util/Pools$SimplePool;->poolSize:I return v1 :cond_0 const/4 p1, 0x0 return p1 .line 92 :cond_1 new-instance p1, Ljava/lang/IllegalStateException; const-string v0, "Already in the pool!" invoke-virtual {v0}, Ljava/lang/Object;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .end method