LockedResource.smali
.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 = {
"<Z:",
"Ljava/lang/Object;",
">",
"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 <clinit>()V
.registers 2
.line 17
new-instance v0, Lcom/bumptech/glide/load/engine/LockedResource$1;
invoke-direct {v0}, Lcom/bumptech/glide/load/engine/LockedResource$1;-><init>()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 <init>()V
.registers 2
.line 37
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 24
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 40
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z
const/4 v0, 0x1
.line 41
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z
.line 42
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 = {
"<Z:",
"Ljava/lang/Object;",
">(",
"Lcom/bumptech/glide/load/engine/Resource<",
"TZ;>;)",
"Lcom/bumptech/glide/load/engine/LockedResource<",
"TZ;>;"
}
.end annotation
.line 31
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;
.line 32
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 46
iput-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource;
.line 47
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 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;->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 64
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 74
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 90
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 79
: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 81
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z
.line 82
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z
if-nez v0, :cond_15
.line 83
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 84
invoke-direct {p0}, Lcom/bumptech/glide/load/engine/LockedResource;->release()V
:try_end_15
.catchall {:try_start_1 .. :try_end_15} :catchall_17
.line 86
:cond_15
monitor-exit p0
return-void
:catchall_17
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized unlock()V
.registers 3
monitor-enter p0
.line 51
: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 53
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z
if-eqz v0, :cond_16
const/4 v0, 0x0
.line 56
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z
.line 57
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z
if-eqz v0, :cond_14
.line 58
invoke-virtual {p0}, Lcom/bumptech/glide/load/engine/LockedResource;->recycle()V
:try_end_14
.catchall {:try_start_1 .. :try_end_14} :catchall_1e
.line 60
:cond_14
monitor-exit p0
return-void
.line 54
:cond_16
:try_start_16
new-instance v0, Ljava/lang/IllegalStateException;
const-string v1, "Already unlocked"
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_1e
.catchall {:try_start_16 .. :try_end_1e} :catchall_1e
:catchall_1e
move-exception v0
monitor-exit p0
throw v0
.end method