i.smali
.class public final Lcom/bumptech/glide/load/engine/a/i;
.super Ljava/lang/Object;
.source "LruBitmapPool.java"
# interfaces
.implements Lcom/bumptech/glide/load/engine/a/e;
# static fields
.field private static final FW:Landroid/graphics/Bitmap$Config;
# instance fields
.field private final FX:Lcom/bumptech/glide/load/engine/a/k;
.field private final FY:Ljava/util/Set;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Set",
"<",
"Landroid/graphics/Bitmap$Config;",
">;"
}
.end annotation
.end field
.field private FZ:I
.field private Ga:I
.field private Gb:I
.field private Gc:I
.field private cE:I
.field private maxSize:I
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 23
sget-object v0, Landroid/graphics/Bitmap$Config;->ARGB_8888:Landroid/graphics/Bitmap$Config;
sput-object v0, Lcom/bumptech/glide/load/engine/a/i;->FW:Landroid/graphics/Bitmap$Config;
return-void
.end method
.method public constructor <init>(I)V
.registers 6
.prologue
const/16 v3, 0x13
.line 52
.line 1215
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v0, v3, :cond_2b
.line 1216
new-instance v0, Lcom/bumptech/glide/load/engine/a/m;
invoke-direct {v0}, Lcom/bumptech/glide/load/engine/a/m;-><init>()V
.line 1224
:goto_b
new-instance v1, Ljava/util/HashSet;
invoke-direct {v1}, Ljava/util/HashSet;-><init>()V
.line 1225
invoke-static {}, Landroid/graphics/Bitmap$Config;->values()[Landroid/graphics/Bitmap$Config;
move-result-object v2
invoke-static {v2}, Ljava/util/Arrays;->asList([Ljava/lang/Object;)Ljava/util/List;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/Set;->addAll(Ljava/util/Collection;)Z
.line 1226
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v2, v3, :cond_23
.line 1227
const/4 v2, 0x0
invoke-interface {v1, v2}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
.line 1229
:cond_23
invoke-static {v1}, Ljava/util/Collections;->unmodifiableSet(Ljava/util/Set;)Ljava/util/Set;
move-result-object v1
.line 52
invoke-direct {p0, p1, v0, v1}, Lcom/bumptech/glide/load/engine/a/i;-><init>(ILcom/bumptech/glide/load/engine/a/k;Ljava/util/Set;)V
.line 53
return-void
.line 1218
:cond_2b
new-instance v0, Lcom/bumptech/glide/load/engine/a/a;
invoke-direct {v0}, Lcom/bumptech/glide/load/engine/a/a;-><init>()V
goto :goto_b
.end method
.method private constructor <init>(ILcom/bumptech/glide/load/engine/a/k;Ljava/util/Set;)V
.registers 6
.annotation system Ldalvik/annotation/Signature;
value = {
"(I",
"Lcom/bumptech/glide/load/engine/a/k;",
"Ljava/util/Set",
"<",
"Landroid/graphics/Bitmap$Config;",
">;)V"
}
.end annotation
.prologue
.line 38
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 40
iput p1, p0, Lcom/bumptech/glide/load/engine/a/i;->maxSize:I
.line 41
iput-object p2, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
.line 42
iput-object p3, p0, Lcom/bumptech/glide/load/engine/a/i;->FY:Ljava/util/Set;
.line 43
new-instance v0, Lcom/bumptech/glide/load/engine/a/j;
const/4 v1, 0x0
invoke-direct {v0, v1}, Lcom/bumptech/glide/load/engine/a/j;-><init>(B)V
.line 44
return-void
.end method
.method private dS()V
.registers 3
.prologue
.line 204
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "Hits="
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FZ:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ", misses="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Ga:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ", puts="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Gb:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ", evictions="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Gc:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ", currentSize="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ", maxSize="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->maxSize:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "\nStrategy="
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
.line 211
return-void
.end method
.method private dump()V
.registers 3
.prologue
.line 198
const-string v0, "LruBitmapPool"
const/4 v1, 0x2
invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_c
.line 199
invoke-direct {p0}, Lcom/bumptech/glide/load/engine/a/i;->dS()V
.line 201
:cond_c
return-void
.end method
.method private declared-synchronized trimToSize(I)V
.registers 5
.prologue
.line 174
monitor-enter p0
:goto_1
:try_start_1
iget v0, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
if-le v0, p1, :cond_1c
.line 175
iget-object v0, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v0}, Lcom/bumptech/glide/load/engine/a/k;->dN()Landroid/graphics/Bitmap;
move-result-object v0
.line 177
if-nez v0, :cond_1e
.line 178
const-string v0, "LruBitmapPool"
const/4 v1, 0x5
invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_19
.line 180
invoke-direct {p0}, Lcom/bumptech/glide/load/engine/a/i;->dS()V
.line 182
:cond_19
const/4 v0, 0x0
iput v0, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
:try_end_1c
.catchall {:try_start_1 .. :try_end_1c} :catchall_4f
.line 195
:cond_1c
monitor-exit p0
return-void
.line 187
:cond_1e
:try_start_1e
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
iget-object v2, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v2, v0}, Lcom/bumptech/glide/load/engine/a/k;->e(Landroid/graphics/Bitmap;)I
move-result v2
sub-int/2addr v1, v2
iput v1, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
.line 188
invoke-virtual {v0}, Landroid/graphics/Bitmap;->recycle()V
.line 189
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Gc:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Gc:I
.line 190
const-string v1, "LruBitmapPool"
const/4 v2, 0x3
invoke-static {v1, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v1
if-eqz v1, :cond_4b
.line 191
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Evicting bitmap="
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v2, v0}, Lcom/bumptech/glide/load/engine/a/k;->d(Landroid/graphics/Bitmap;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 193
:cond_4b
invoke-direct {p0}, Lcom/bumptech/glide/load/engine/a/i;->dump()V
:try_end_4e
.catchall {:try_start_1e .. :try_end_4e} :catchall_4f
goto :goto_1
.line 174
:catchall_4f
move-exception v0
monitor-exit p0
throw v0
.end method
# virtual methods
.method public final declared-synchronized b(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
.registers 6
.prologue
.line 114
monitor-enter p0
:try_start_1
invoke-virtual {p0, p1, p2, p3}, Lcom/bumptech/glide/load/engine/a/i;->f(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.line 115
if-eqz v0, :cond_b
.line 119
const/4 v1, 0x0
invoke-virtual {v0, v1}, Landroid/graphics/Bitmap;->eraseColor(I)V
:try_end_b
.catchall {:try_start_1 .. :try_end_b} :catchall_d
.line 122
:cond_b
monitor-exit p0
return-object v0
.line 114
:catchall_d
move-exception v0
monitor-exit p0
throw v0
.end method
.method public final dR()V
.registers 2
.prologue
.line 157
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/engine/a/i;->trimToSize(I)V
.line 158
return-void
.end method
.method public final declared-synchronized f(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
.registers 7
.annotation build Landroid/annotation/TargetApi;
value = 0xc
.end annotation
.prologue
.line 130
monitor-enter p0
:try_start_1
iget-object v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
if-eqz p3, :cond_49
move-object v0, p3
:goto_6
invoke-interface {v1, p1, p2, v0}, Lcom/bumptech/glide/load/engine/a/k;->b(IILandroid/graphics/Bitmap$Config;)Landroid/graphics/Bitmap;
move-result-object v0
.line 131
if-nez v0, :cond_4c
.line 132
const-string v1, "LruBitmapPool"
const/4 v2, 0x3
invoke-static {v1, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v1
if-eqz v1, :cond_25
.line 133
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Missing bitmap="
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v2, p1, p2, p3}, Lcom/bumptech/glide/load/engine/a/k;->c(IILandroid/graphics/Bitmap$Config;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 135
:cond_25
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Ga:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Ga:I
.line 144
:cond_2b
:goto_2b
const-string v1, "LruBitmapPool"
const/4 v2, 0x2
invoke-static {v1, v2}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v1
if-eqz v1, :cond_44
.line 145
new-instance v1, Ljava/lang/StringBuilder;
const-string v2, "Get bitmap="
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v2, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v2, p1, p2, p3}, Lcom/bumptech/glide/load/engine/a/k;->c(IILandroid/graphics/Bitmap$Config;)Ljava/lang/String;
move-result-object v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 147
:cond_44
invoke-direct {p0}, Lcom/bumptech/glide/load/engine/a/i;->dump()V
:try_end_47
.catchall {:try_start_1 .. :try_end_47} :catchall_68
.line 149
monitor-exit p0
return-object v0
.line 130
:cond_49
:try_start_49
sget-object v0, Lcom/bumptech/glide/load/engine/a/i;->FW:Landroid/graphics/Bitmap$Config;
goto :goto_6
.line 137
:cond_4c
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FZ:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FZ:I
.line 138
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
iget-object v2, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v2, v0}, Lcom/bumptech/glide/load/engine/a/k;->e(Landroid/graphics/Bitmap;)I
move-result v2
sub-int/2addr v1, v2
iput v1, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
.line 140
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0xc
if-lt v1, v2, :cond_2b
.line 141
const/4 v1, 0x1
invoke-virtual {v0, v1}, Landroid/graphics/Bitmap;->setHasAlpha(Z)V
:try_end_67
.catchall {:try_start_49 .. :try_end_67} :catchall_68
goto :goto_2b
.line 130
:catchall_68
move-exception v0
monitor-exit p0
throw v0
.end method
.method public final declared-synchronized f(Landroid/graphics/Bitmap;)Z
.registers 5
.prologue
.line 79
monitor-enter p0
if-nez p1, :cond_e
.line 80
:try_start_3
new-instance v0, Ljava/lang/NullPointerException;
const-string v1, "Bitmap must not be null"
invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_b
.catchall {:try_start_3 .. :try_end_b} :catchall_b
.line 79
:catchall_b
move-exception v0
monitor-exit p0
throw v0
.line 82
:cond_e
:try_start_e
invoke-virtual {p1}, Landroid/graphics/Bitmap;->isMutable()Z
move-result v0
if-eqz v0, :cond_2a
iget-object v0, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v0, p1}, Lcom/bumptech/glide/load/engine/a/k;->e(Landroid/graphics/Bitmap;)I
move-result v0
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->maxSize:I
if-gt v0, v1, :cond_2a
iget-object v0, p0, Lcom/bumptech/glide/load/engine/a/i;->FY:Ljava/util/Set;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v1
invoke-interface {v0, v1}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_68
.line 83
:cond_2a
const-string v0, "LruBitmapPool"
const/4 v1, 0x2
invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_65
.line 84
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "Reject bitmap from pool, bitmap: "
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v1, p1}, Lcom/bumptech/glide/load/engine/a/k;->d(Landroid/graphics/Bitmap;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ", is mutable: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {p1}, Landroid/graphics/Bitmap;->isMutable()Z
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, ", is allowed config: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FY:Ljava/util/Set;
invoke-virtual {p1}, Landroid/graphics/Bitmap;->getConfig()Landroid/graphics/Bitmap$Config;
move-result-object v2
invoke-interface {v1, v2}, Ljava/util/Set;->contains(Ljava/lang/Object;)Z
move-result v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
:try_end_65
.catchall {:try_start_e .. :try_end_65} :catchall_b
.line 89
:cond_65
const/4 v0, 0x0
.line 105
:goto_66
monitor-exit p0
return v0
.line 92
:cond_68
:try_start_68
iget-object v0, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v0, p1}, Lcom/bumptech/glide/load/engine/a/k;->e(Landroid/graphics/Bitmap;)I
move-result v0
.line 93
iget-object v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v1, p1}, Lcom/bumptech/glide/load/engine/a/k;->c(Landroid/graphics/Bitmap;)V
.line 96
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Gb:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/bumptech/glide/load/engine/a/i;->Gb:I
.line 97
iget v1, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
add-int/2addr v0, v1
iput v0, p0, Lcom/bumptech/glide/load/engine/a/i;->cE:I
.line 99
const-string v0, "LruBitmapPool"
const/4 v1, 0x2
invoke-static {v0, v1}, Landroid/util/Log;->isLoggable(Ljava/lang/String;I)Z
move-result v0
if-eqz v0, :cond_97
.line 100
new-instance v0, Ljava/lang/StringBuilder;
const-string v1, "Put bitmap in pool="
invoke-direct {v0, v1}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
iget-object v1, p0, Lcom/bumptech/glide/load/engine/a/i;->FX:Lcom/bumptech/glide/load/engine/a/k;
invoke-interface {v1, p1}, Lcom/bumptech/glide/load/engine/a/k;->d(Landroid/graphics/Bitmap;)Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 102
:cond_97
invoke-direct {p0}, Lcom/bumptech/glide/load/engine/a/i;->dump()V
.line 2109
iget v0, p0, Lcom/bumptech/glide/load/engine/a/i;->maxSize:I
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/engine/a/i;->trimToSize(I)V
:try_end_9f
.catchall {:try_start_68 .. :try_end_9f} :catchall_b
.line 105
const/4 v0, 0x1
goto :goto_66
.end method
.method public final trimMemory(I)V
.registers 3
.annotation build Landroid/annotation/SuppressLint;
value = {
"InlinedApi"
}
.end annotation
.prologue
.line 166
const/16 v0, 0x3c
if-lt p1, v0, :cond_9
.line 2157
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/engine/a/i;->trimToSize(I)V
.line 171
:cond_8
:goto_8
return-void
.line 168
:cond_9
const/16 v0, 0x28
if-lt p1, v0, :cond_8
.line 169
iget v0, p0, Lcom/bumptech/glide/load/engine/a/i;->maxSize:I
div-int/lit8 v0, v0, 0x2
invoke-direct {p0, v0}, Lcom/bumptech/glide/load/engine/a/i;->trimToSize(I)V
goto :goto_8
.end method