.class final Lcom/bumptech/glide/load/engine/LockedResource; .super Ljava/lang/Object; .source "LockedResource.java" # interfaces .implements Lcom/bumptech/glide/load/engine/Resource; .implements Lcom/bumptech/glide/util/pool/FactoryPools$Poolable; # annotations .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/lang/Object;", "Lcom/bumptech/glide/load/engine/Resource<", "TZ;>;", "Lcom/bumptech/glide/util/pool/FactoryPools$Poolable;" } .end annotation # static fields .field private static final POOL:Landroidx/core/util/Pools$Pool; .annotation system Ldalvik/annotation/Signature; value = { "Landroidx/core/util/Pools$Pool<", "Lcom/bumptech/glide/load/engine/LockedResource<", "*>;>;" } .end annotation .end field # instance fields .field private isLocked:Z .field private isRecycled:Z .field private final stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; .field private toWrap:Lcom/bumptech/glide/load/engine/Resource; .annotation system Ldalvik/annotation/Signature; value = { "Lcom/bumptech/glide/load/engine/Resource<", "TZ;>;" } .end annotation .end field # direct methods .method static constructor ()V .registers 2 .line 19 new-instance v0, Lcom/bumptech/glide/load/engine/LockedResource$1; invoke-direct {v0}, Lcom/bumptech/glide/load/engine/LockedResource$1;->()V const/16 v1, 0x14 invoke-static {v1, v0}, Lcom/bumptech/glide/util/pool/FactoryPools;->threadSafe(ILcom/bumptech/glide/util/pool/FactoryPools$Factory;)Landroidx/core/util/Pools$Pool; move-result-object v0 sput-object v0, Lcom/bumptech/glide/load/engine/LockedResource;->POOL:Landroidx/core/util/Pools$Pool; return-void .end method .method constructor ()V .registers 2 .line 41 invoke-direct {p0}, Ljava/lang/Object;->()V .line 26 invoke-static {}, Lcom/bumptech/glide/util/pool/StateVerifier;->newInstance()Lcom/bumptech/glide/util/pool/StateVerifier; move-result-object v0 iput-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; return-void .end method .method private init(Lcom/bumptech/glide/load/engine/Resource;)V .registers 3 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/Resource<", "TZ;>;)V" } .end annotation const/4 v0, 0x0 .line 44 iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z const/4 v0, 0x1 .line 45 iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z .line 46 iput-object p1, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource; return-void .end method .method static obtain(Lcom/bumptech/glide/load/engine/Resource;)Lcom/bumptech/glide/load/engine/LockedResource; .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/Resource<", "TZ;>;)", "Lcom/bumptech/glide/load/engine/LockedResource<", "TZ;>;" } .end annotation .line 34 sget-object v0, Lcom/bumptech/glide/load/engine/LockedResource;->POOL:Landroidx/core/util/Pools$Pool; invoke-interface {v0}, Landroidx/core/util/Pools$Pool;->acquire()Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/load/engine/LockedResource; invoke-static {v0}, Lcom/bumptech/glide/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/load/engine/LockedResource; .line 35 invoke-direct {v0, p0}, Lcom/bumptech/glide/load/engine/LockedResource;->init(Lcom/bumptech/glide/load/engine/Resource;)V return-object v0 .end method .method private release()V .registers 2 const/4 v0, 0x0 .line 50 iput-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource; .line 51 sget-object v0, Lcom/bumptech/glide/load/engine/LockedResource;->POOL:Landroidx/core/util/Pools$Pool; invoke-interface {v0, p0}, Landroidx/core/util/Pools$Pool;->release(Ljava/lang/Object;)Z return-void .end method # virtual methods .method public get()Ljava/lang/Object; .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "()TZ;" } .end annotation .line 75 iget-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource; invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->get()Ljava/lang/Object; move-result-object v0 return-object v0 .end method .method public getResourceClass()Ljava/lang/Class; .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "()", "Ljava/lang/Class<", "TZ;>;" } .end annotation .line 69 iget-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource; invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->getResourceClass()Ljava/lang/Class; move-result-object v0 return-object v0 .end method .method public getSize()I .registers 2 .line 80 iget-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource; invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->getSize()I move-result v0 return v0 .end method .method public getVerifier()Lcom/bumptech/glide/util/pool/StateVerifier; .registers 2 .line 97 iget-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; return-object v0 .end method .method public declared-synchronized recycle()V .registers 2 monitor-enter p0 .line 85 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; invoke-virtual {v0}, Lcom/bumptech/glide/util/pool/StateVerifier;->throwIfRecycled()V const/4 v0, 0x1 .line 87 iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z .line 88 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z if-nez v0, :cond_15 .line 89 iget-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource; invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->recycle()V .line 90 invoke-direct {p0}, Lcom/bumptech/glide/load/engine/LockedResource;->release()V :try_end_15 .catchall {:try_start_1 .. :try_end_15} :catchall_17 .line 92 :cond_15 monitor-exit p0 return-void :catchall_17 move-exception v0 :try_start_18 monitor-exit p0 :try_end_19 .catchall {:try_start_18 .. :try_end_19} :catchall_17 throw v0 .end method .method declared-synchronized unlock()V .registers 3 monitor-enter p0 .line 55 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->stateVerifier:Lcom/bumptech/glide/util/pool/StateVerifier; invoke-virtual {v0}, Lcom/bumptech/glide/util/pool/StateVerifier;->throwIfRecycled()V .line 57 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z if-eqz v0, :cond_16 const/4 v0, 0x0 .line 60 iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z .line 61 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z if-eqz v0, :cond_14 .line 62 invoke-virtual {p0}, Lcom/bumptech/glide/load/engine/LockedResource;->recycle()V :try_end_14 .catchall {:try_start_1 .. :try_end_14} :catchall_1e .line 64 :cond_14 monitor-exit p0 return-void .line 58 :cond_16 :try_start_16 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Already unlocked" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 :catchall_1e move-exception v0 monitor-exit p0 :try_end_20 .catchall {:try_start_16 .. :try_end_20} :catchall_1e throw v0 .end method