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 18
new-instance v0, Lcom/bumptech/glide/load/engine/LockedResource$1;
invoke-direct {v0}, Lcom/bumptech/glide/load/engine/LockedResource$1;-><init>()V
.line 19
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;
.line 18
return-void
.end method
.method constructor <init>()V
.registers 2
.line 42
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 27
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;
.line 42
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
.line 45
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
.local p1, "toWrap":Lcom/bumptech/glide/load/engine/Resource;, "Lcom/bumptech/glide/load/engine/Resource<TZ;>;"
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z
.line 46
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z
.line 47
iput-object p1, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource;
.line 48
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 35
.local p0, "resource":Lcom/bumptech/glide/load/engine/Resource;, "Lcom/bumptech/glide/load/engine/Resource<TZ;>;"
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 36
.local v0, "result":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
invoke-direct {v0, p0}, Lcom/bumptech/glide/load/engine/LockedResource;->init(Lcom/bumptech/glide/load/engine/Resource;)V
.line 37
return-object v0
.end method
.method private release()V
.registers 2
.line 51
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
const/4 v0, 0x0
iput-object v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->toWrap:Lcom/bumptech/glide/load/engine/Resource;
.line 52
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
.line 53
return-void
.end method
# virtual methods
.method public get()Ljava/lang/Object;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()TZ;"
}
.end annotation
.line 76
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
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 70
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
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 81
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
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 98
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
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
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
monitor-enter p0
.line 86
: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 88
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z
.line 89
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z
if-nez v0, :cond_15
.line 90
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 91
invoke-direct {p0}, Lcom/bumptech/glide/load/engine/LockedResource;->release()V
:try_end_15
.catchall {:try_start_1 .. :try_end_15} :catchall_17
.line 93
.end local p0 # "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
:cond_15
monitor-exit p0
return-void
.line 85
:catchall_17
move-exception v0
monitor-exit p0
throw v0
.end method
.method declared-synchronized unlock()V
.registers 3
.local p0, "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
monitor-enter p0
.line 56
: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 58
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z
if-eqz v0, :cond_16
.line 61
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isLocked:Z
.line 62
iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/LockedResource;->isRecycled:Z
if-eqz v0, :cond_14
.line 63
invoke-virtual {p0}, Lcom/bumptech/glide/load/engine/LockedResource;->recycle()V
:try_end_14
.catchall {:try_start_1 .. :try_end_14} :catchall_1e
.line 65
.end local p0 # "this":Lcom/bumptech/glide/load/engine/LockedResource;, "Lcom/bumptech/glide/load/engine/LockedResource<TZ;>;"
:cond_14
monitor-exit p0
return-void
.line 59
: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
.line 55
:catchall_1e
move-exception v0
monitor-exit p0
throw v0
.end method