SafeKeyGenerator.smali
.class public Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;
.super Ljava/lang/Object;
.source "SafeKeyGenerator.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator$PoolableDigestContainer;
}
.end annotation
# instance fields
.field private final digestPool:Landroidx/core/util/Pools$Pool;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroidx/core/util/Pools$Pool<",
"Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator$PoolableDigestContainer;",
">;"
}
.end annotation
.end field
.field private final loadIdToSafeHash:Lcom/bumptech/glide/util/LruCache;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/bumptech/glide/util/LruCache<",
"Lcom/bumptech/glide/load/Key;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
# direct methods
.method public constructor <init>()V
.registers 4
.line 21
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 22
new-instance v0, Lcom/bumptech/glide/util/LruCache;
const-wide/16 v1, 0x3e8
invoke-direct {v0, v1, v2}, Lcom/bumptech/glide/util/LruCache;-><init>(J)V
iput-object v0, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->loadIdToSafeHash:Lcom/bumptech/glide/util/LruCache;
.line 23
new-instance v0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator$1;
invoke-direct {v0, p0}, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator$1;-><init>(Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;)V
const/16 v1, 0xa
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
iput-object v0, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->digestPool:Landroidx/core/util/Pools$Pool;
return-void
.end method
.method private calculateHexStringDigest(Lcom/bumptech/glide/load/Key;)Ljava/lang/String;
.registers 4
.line 50
iget-object v0, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->digestPool:Landroidx/core/util/Pools$Pool;
invoke-interface {v0}, Landroidx/core/util/Pools$Pool;->acquire()Ljava/lang/Object;
move-result-object v0
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/cache/SafeKeyGenerator$PoolableDigestContainer;
.line 52
:try_start_c
iget-object v1, v0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator$PoolableDigestContainer;->messageDigest:Ljava/security/MessageDigest;
invoke-interface {p1, v1}, Lcom/bumptech/glide/load/Key;->updateDiskCacheKey(Ljava/security/MessageDigest;)V
.line 54
iget-object p1, v0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator$PoolableDigestContainer;->messageDigest:Ljava/security/MessageDigest;
invoke-virtual {p1}, Ljava/security/MessageDigest;->digest()[B
move-result-object p1
invoke-static {p1}, Lcom/bumptech/glide/util/Util;->sha256BytesToHex([B)Ljava/lang/String;
move-result-object p1
:try_end_1b
.catchall {:try_start_c .. :try_end_1b} :catchall_21
.line 56
iget-object v1, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->digestPool:Landroidx/core/util/Pools$Pool;
invoke-interface {v1, v0}, Landroidx/core/util/Pools$Pool;->release(Ljava/lang/Object;)Z
return-object p1
:catchall_21
move-exception p1
iget-object v1, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->digestPool:Landroidx/core/util/Pools$Pool;
invoke-interface {v1, v0}, Landroidx/core/util/Pools$Pool;->release(Ljava/lang/Object;)Z
throw p1
.end method
# virtual methods
.method public getSafeKey(Lcom/bumptech/glide/load/Key;)Ljava/lang/String;
.registers 5
.line 37
iget-object v0, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->loadIdToSafeHash:Lcom/bumptech/glide/util/LruCache;
monitor-enter v0
.line 38
:try_start_3
iget-object v1, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->loadIdToSafeHash:Lcom/bumptech/glide/util/LruCache;
invoke-virtual {v1, p1}, Lcom/bumptech/glide/util/LruCache;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
.line 39
monitor-exit v0
:try_end_c
.catchall {:try_start_3 .. :try_end_c} :catchall_1f
if-nez v1, :cond_12
.line 41
invoke-direct {p0, p1}, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->calculateHexStringDigest(Lcom/bumptech/glide/load/Key;)Ljava/lang/String;
move-result-object v1
.line 43
:cond_12
iget-object v2, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->loadIdToSafeHash:Lcom/bumptech/glide/util/LruCache;
monitor-enter v2
.line 44
:try_start_15
iget-object v0, p0, Lcom/bumptech/glide/load/engine/cache/SafeKeyGenerator;->loadIdToSafeHash:Lcom/bumptech/glide/util/LruCache;
invoke-virtual {v0, p1, v1}, Lcom/bumptech/glide/util/LruCache;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 45
monitor-exit v2
return-object v1
:catchall_1c
move-exception p1
monitor-exit v2
:try_end_1e
.catchall {:try_start_15 .. :try_end_1e} :catchall_1c
throw p1
:catchall_1f
move-exception p1
.line 39
:try_start_20
monitor-exit v0
:try_end_21
.catchall {:try_start_20 .. :try_end_21} :catchall_1f
throw p1
.end method