.class public final Lcom/bumptech/glide/disklrucache/DiskLruCache; .super Ljava/lang/Object; .source "DiskLruCache.java" # interfaces .implements Ljava/io/Closeable; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/bumptech/glide/disklrucache/DiskLruCache$DiskLruCacheThreadFactory;, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;, Lcom/bumptech/glide/disklrucache/DiskLruCache$Value; } .end annotation # static fields .field static final ANY_SEQUENCE_NUMBER:J = -0x1L .field private static final CLEAN:Ljava/lang/String; = "CLEAN" .field private static final DIRTY:Ljava/lang/String; = "DIRTY" .field static final JOURNAL_FILE:Ljava/lang/String; = "journal" .field static final JOURNAL_FILE_BACKUP:Ljava/lang/String; = "journal.bkp" .field static final JOURNAL_FILE_TEMP:Ljava/lang/String; = "journal.tmp" .field static final MAGIC:Ljava/lang/String; = "libcore.io.DiskLruCache" .field private static final READ:Ljava/lang/String; = "READ" .field private static final REMOVE:Ljava/lang/String; = "REMOVE" .field static final VERSION_1:Ljava/lang/String; = "1" # instance fields .field private final appVersion:I .field private final cleanupCallable:Ljava/util/concurrent/Callable; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/concurrent/Callable<", "Ljava/lang/Void;", ">;" } .end annotation .end field .field private final directory:Ljava/io/File; .field final executorService:Ljava/util/concurrent/ThreadPoolExecutor; .field private final journalFile:Ljava/io/File; .field private final journalFileBackup:Ljava/io/File; .field private final journalFileTmp:Ljava/io/File; .field private journalWriter:Ljava/io/Writer; .field private final lruEntries:Ljava/util/LinkedHashMap; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/LinkedHashMap<", "Ljava/lang/String;", "Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;", ">;" } .end annotation .end field .field private maxSize:J .field private nextSequenceNumber:J .field private redundantOpCount:I .field private size:J .field private final valueCount:I # direct methods .method private constructor (Ljava/io/File;IIJ)V .registers 22 move-object/from16 v0, p0 move-object/from16 v1, p1 .line 178 invoke-direct/range {p0 .. p0}, Ljava/lang/Object;->()V const-wide/16 v2, 0x0 .line 145 iput-wide v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J .line 147 new-instance v4, Ljava/util/LinkedHashMap; const/high16 v5, 0x3f400000 # 0.75f const/4 v6, 0x1 const/4 v7, 0x0 invoke-direct {v4, v7, v5, v6}, Ljava/util/LinkedHashMap;->(IFZ)V iput-object v4, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; .line 156 iput-wide v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->nextSequenceNumber:J .line 159 new-instance v2, Ljava/util/concurrent/ThreadPoolExecutor; sget-object v13, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit; new-instance v14, Ljava/util/concurrent/LinkedBlockingQueue; invoke-direct {v14}, Ljava/util/concurrent/LinkedBlockingQueue;->()V new-instance v15, Lcom/bumptech/glide/disklrucache/DiskLruCache$DiskLruCacheThreadFactory; const/4 v3, 0x0 invoke-direct {v15, v3}, Lcom/bumptech/glide/disklrucache/DiskLruCache$DiskLruCacheThreadFactory;->(Lcom/bumptech/glide/disklrucache/DiskLruCache$1;)V const/4 v9, 0x0 const/4 v10, 0x1 const-wide/16 v11, 0x3c move-object v8, v2 invoke-direct/range {v8 .. v15}, Ljava/util/concurrent/ThreadPoolExecutor;->(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V iput-object v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->executorService:Ljava/util/concurrent/ThreadPoolExecutor; .line 162 new-instance v2, Lcom/bumptech/glide/disklrucache/DiskLruCache$1; invoke-direct {v2, v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$1;->(Lcom/bumptech/glide/disklrucache/DiskLruCache;)V iput-object v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->cleanupCallable:Ljava/util/concurrent/Callable; .line 179 iput-object v1, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->directory:Ljava/io/File; move/from16 v2, p2 .line 180 iput v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->appVersion:I .line 181 new-instance v2, Ljava/io/File; const-string v3, "journal" invoke-direct {v2, v1, v3}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V iput-object v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFile:Ljava/io/File; .line 182 new-instance v2, Ljava/io/File; const-string v3, "journal.tmp" invoke-direct {v2, v1, v3}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V iput-object v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFileTmp:Ljava/io/File; .line 183 new-instance v2, Ljava/io/File; const-string v3, "journal.bkp" invoke-direct {v2, v1, v3}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V iput-object v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFileBackup:Ljava/io/File; move/from16 v1, p3 .line 184 iput v1, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I move-wide/from16 v1, p4 .line 185 iput-wide v1, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->maxSize:J return-void .end method .method static synthetic access$100(Lcom/bumptech/glide/disklrucache/DiskLruCache;)Ljava/io/Writer; .registers 1 .line 86 iget-object p0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; return-object p0 .end method .method static synthetic access$1700(Lcom/bumptech/glide/disklrucache/DiskLruCache;Ljava/lang/String;J)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 86 invoke-direct {p0, p1, p2, p3}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->edit(Ljava/lang/String;J)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object p0 return-object p0 .end method .method static synthetic access$1800(Ljava/io/InputStream;)Ljava/lang/String; .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 86 invoke-static {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->inputStreamToString(Ljava/io/InputStream;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method static synthetic access$1900(Lcom/bumptech/glide/disklrucache/DiskLruCache;)I .registers 1 .line 86 iget p0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I return p0 .end method .method static synthetic access$200(Lcom/bumptech/glide/disklrucache/DiskLruCache;)V .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 86 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->trimToSize()V return-void .end method .method static synthetic access$2000(Lcom/bumptech/glide/disklrucache/DiskLruCache;)Ljava/io/File; .registers 1 .line 86 iget-object p0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->directory:Ljava/io/File; return-object p0 .end method .method static synthetic access$2100(Lcom/bumptech/glide/disklrucache/DiskLruCache;Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;Z)V .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 86 invoke-direct {p0, p1, p2}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->completeEdit(Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;Z)V return-void .end method .method static synthetic access$300(Lcom/bumptech/glide/disklrucache/DiskLruCache;)Z .registers 1 .line 86 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalRebuildRequired()Z move-result p0 return p0 .end method .method static synthetic access$400(Lcom/bumptech/glide/disklrucache/DiskLruCache;)V .registers 1 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 86 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->rebuildJournal()V return-void .end method .method static synthetic access$502(Lcom/bumptech/glide/disklrucache/DiskLruCache;I)I .registers 2 .line 86 iput p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I return p1 .end method .method private checkNotClosed()V .registers 3 .line 619 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; if-eqz v0, :cond_5 return-void .line 620 :cond_5 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "cache is closed" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method .method private declared-synchronized completeEdit(Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;Z)V .registers 12 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 504 :try_start_1 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->entry:Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; invoke-static {p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->access$1500(Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; move-result-object v0 .line 505 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$800(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object v1 if-ne v1, p1, :cond_10a const/4 v1, 0x0 if-eqz p2, :cond_4f .line 510 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->readable:Z invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$700(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Z move-result v2 if-nez v2, :cond_4f move v2, v1 .line 511 :goto_15 iget v3, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I if-ge v2, v3, :cond_4f .line 512 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->written:[Z invoke-static {p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->access$1600(Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;)[Z move-result-object v3 aget-boolean v3, v3, v2 if-eqz v3, :cond_33 .line 516 invoke-virtual {v0, v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->getDirtyFile(I)Ljava/io/File; move-result-object v3 invoke-virtual {v3}, Ljava/io/File;->exists()Z move-result v3 if-nez v3, :cond_30 .line 517 invoke-virtual {p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->abort()V :try_end_2e .catchall {:try_start_1 .. :try_end_2e} :catchall_110 .line 518 monitor-exit p0 return-void :cond_30 add-int/lit8 v2, v2, 0x1 goto :goto_15 .line 513 :cond_33 :try_start_33 invoke-virtual {p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->abort()V .line 514 new-instance p1, Ljava/lang/IllegalStateException; new-instance p2, Ljava/lang/StringBuilder; invoke-direct {p2}, Ljava/lang/StringBuilder;->()V const-string v0, "Newly created entry didn\'t create value for index " invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object p2 invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p2 invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .line 523 :cond_4f :goto_4f iget p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I if-ge v1, p1, :cond_83 .line 524 invoke-virtual {v0, v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->getDirtyFile(I)Ljava/io/File; move-result-object p1 if-eqz p2, :cond_7d .line 526 invoke-virtual {p1}, Ljava/io/File;->exists()Z move-result v2 if-eqz v2, :cond_80 .line 527 invoke-virtual {v0, v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->getCleanFile(I)Ljava/io/File; move-result-object v2 .line 528 invoke-virtual {p1, v2}, Ljava/io/File;->renameTo(Ljava/io/File;)Z .line 529 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->lengths:[J invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1100(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)[J move-result-object p1 aget-wide v3, p1, v1 .line 530 invoke-virtual {v2}, Ljava/io/File;->length()J move-result-wide v5 .line 531 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->lengths:[J invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1100(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)[J move-result-object p1 aput-wide v5, p1, v1 .line 532 iget-wide v7, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J sub-long/2addr v7, v3 add-long/2addr v7, v5 iput-wide v7, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J goto :goto_80 .line 535 :cond_7d invoke-static {p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->deleteIfExists(Ljava/io/File;)V :cond_80 :goto_80 add-int/lit8 v1, v1, 0x1 goto :goto_4f .line 539 :cond_83 iget p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I const/4 v1, 0x1 add-int/2addr p1, v1 iput p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I const/4 p1, 0x0 .line 540 # setter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v0, p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$802(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; .line 541 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->readable:Z invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$700(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Z move-result p1 or-int/2addr p1, p2 const/16 v2, 0xa const/16 v3, 0x20 if-eqz p1, :cond_cb .line 542 # setter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->readable:Z invoke-static {v0, v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$702(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Z)Z .line 543 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const-string v1, "CLEAN" invoke-virtual {p1, v1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 544 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {p1, v3}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 545 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->key:Ljava/lang/String; invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1200(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 546 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->getLengths()Ljava/lang/String; move-result-object v1 invoke-virtual {p1, v1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 547 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {p1, v2}, Ljava/io/Writer;->append(C)Ljava/io/Writer; if-eqz p2, :cond_ee .line 550 iget-wide p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->nextSequenceNumber:J const-wide/16 v1, 0x1 add-long/2addr v1, p1 iput-wide v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->nextSequenceNumber:J # setter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->sequenceNumber:J invoke-static {v0, p1, p2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1302(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;J)J goto :goto_ee .line 553 :cond_cb iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->key:Ljava/lang/String; invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1200(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Ljava/lang/String; move-result-object p2 invoke-virtual {p1, p2}, Ljava/util/LinkedHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; .line 554 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const-string p2, "REMOVE" invoke-virtual {p1, p2}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 555 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {p1, v3}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 556 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->key:Ljava/lang/String; invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1200(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Ljava/lang/String; move-result-object p2 invoke-virtual {p1, p2}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 557 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {p1, v2}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 559 :cond_ee :goto_ee iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {p1}, Ljava/io/Writer;->flush()V .line 561 iget-wide p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J iget-wide v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->maxSize:J cmp-long p1, p1, v0 if-gtz p1, :cond_101 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalRebuildRequired()Z move-result p1 if-eqz p1, :cond_108 .line 562 :cond_101 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->executorService:Ljava/util/concurrent/ThreadPoolExecutor; iget-object p2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->cleanupCallable:Ljava/util/concurrent/Callable; invoke-virtual {p1, p2}, Ljava/util/concurrent/ThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; :try_end_108 .catchall {:try_start_33 .. :try_end_108} :catchall_110 .line 564 :cond_108 monitor-exit p0 return-void .line 506 :cond_10a :try_start_10a new-instance p1, Ljava/lang/IllegalStateException; invoke-direct {p1}, Ljava/lang/IllegalStateException;->()V throw p1 :catchall_110 move-exception p1 monitor-exit p0 :try_end_112 .catchall {:try_start_10a .. :try_end_112} :catchall_110 throw p1 .end method .method private static deleteIfExists(Ljava/io/File;)V .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 389 invoke-virtual {p0}, Ljava/io/File;->exists()Z move-result v0 if-eqz v0, :cond_13 invoke-virtual {p0}, Ljava/io/File;->delete()Z move-result p0 if-eqz p0, :cond_d goto :goto_13 .line 390 :cond_d new-instance p0, Ljava/io/IOException; invoke-direct {p0}, Ljava/io/IOException;->()V throw p0 :cond_13 :goto_13 return-void .end method .method private declared-synchronized edit(Ljava/lang/String;J)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; .registers 9 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 447 :try_start_1 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->checkNotClosed()V .line 448 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v0, p1}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; const-wide/16 v1, -0x1 cmp-long v1, p2, v1 const/4 v2, 0x0 if-eqz v1, :cond_1f if-eqz v0, :cond_1d .line 450 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->sequenceNumber:J invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1300(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)J move-result-wide v3 :try_end_19 .catchall {:try_start_1 .. :try_end_19} :catchall_5d cmp-long p2, v3, p2 if-eqz p2, :cond_1f .line 451 :cond_1d monitor-exit p0 return-object v2 :cond_1f if-nez v0, :cond_2c .line 454 :try_start_21 new-instance v0, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; invoke-direct {v0, p0, p1, v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->(Lcom/bumptech/glide/disklrucache/DiskLruCache;Ljava/lang/String;Lcom/bumptech/glide/disklrucache/DiskLruCache$1;)V .line 455 iget-object p2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {p2, p1, v0}, Ljava/util/LinkedHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; goto :goto_34 .line 456 :cond_2c # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$800(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object p2 :try_end_30 .catchall {:try_start_21 .. :try_end_30} :catchall_5d if-eqz p2, :cond_34 .line 457 monitor-exit p0 return-object v2 .line 460 :cond_34 :goto_34 :try_start_34 new-instance p2, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-direct {p2, p0, v0, v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->(Lcom/bumptech/glide/disklrucache/DiskLruCache;Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Lcom/bumptech/glide/disklrucache/DiskLruCache$1;)V .line 461 # setter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v0, p2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$802(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; .line 464 iget-object p3, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const-string v0, "DIRTY" invoke-virtual {p3, v0}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 465 iget-object p3, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const/16 v0, 0x20 invoke-virtual {p3, v0}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 466 iget-object p3, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {p3, p1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 467 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const/16 p3, 0xa invoke-virtual {p1, p3}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 468 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {p1}, Ljava/io/Writer;->flush()V :try_end_5b .catchall {:try_start_34 .. :try_end_5b} :catchall_5d .line 469 monitor-exit p0 return-object p2 :catchall_5d move-exception p1 :try_start_5e monitor-exit p0 :try_end_5f .catchall {:try_start_5e .. :try_end_5f} :catchall_5d throw p1 .end method .method private static inputStreamToString(Ljava/io/InputStream;)Ljava/lang/String; .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 664 new-instance v0, Ljava/io/InputStreamReader; sget-object v1, Lcom/bumptech/glide/disklrucache/Util;->UTF_8:Ljava/nio/charset/Charset; invoke-direct {v0, p0, v1}, Ljava/io/InputStreamReader;->(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V invoke-static {v0}, Lcom/bumptech/glide/disklrucache/Util;->readFully(Ljava/io/Reader;)Ljava/lang/String; move-result-object p0 return-object p0 .end method .method private journalRebuildRequired()Z .registers 3 .line 572 iget v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I const/16 v1, 0x7d0 if-lt v0, v1, :cond_10 iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; .line 573 invoke-virtual {v1}, Ljava/util/LinkedHashMap;->size()I move-result v1 if-lt v0, v1, :cond_10 const/4 v0, 0x1 goto :goto_11 :cond_10 const/4 v0, 0x0 :goto_11 return v0 .end method .method public static open(Ljava/io/File;IIJ)Lcom/bumptech/glide/disklrucache/DiskLruCache; .registers 14 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-wide/16 v0, 0x0 cmp-long v0, p3, v0 if-lez v0, :cond_88 if-lez p2, :cond_80 .line 207 new-instance v0, Ljava/io/File; const-string v1, "journal.bkp" invoke-direct {v0, p0, v1}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V .line 208 invoke-virtual {v0}, Ljava/io/File;->exists()Z move-result v1 if-eqz v1, :cond_2a .line 209 new-instance v1, Ljava/io/File; const-string v2, "journal" invoke-direct {v1, p0, v2}, Ljava/io/File;->(Ljava/io/File;Ljava/lang/String;)V .line 211 invoke-virtual {v1}, Ljava/io/File;->exists()Z move-result v2 if-eqz v2, :cond_26 .line 212 invoke-virtual {v0}, Ljava/io/File;->delete()Z goto :goto_2a :cond_26 const/4 v2, 0x0 .line 214 invoke-static {v0, v1, v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->renameTo(Ljava/io/File;Ljava/io/File;Z)V .line 219 :cond_2a :goto_2a new-instance v0, Lcom/bumptech/glide/disklrucache/DiskLruCache; move-object v3, v0 move-object v4, p0 move v5, p1 move v6, p2 move-wide v7, p3 invoke-direct/range {v3 .. v8}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->(Ljava/io/File;IIJ)V .line 220 iget-object v1, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFile:Ljava/io/File; invoke-virtual {v1}, Ljava/io/File;->exists()Z move-result v1 if-eqz v1, :cond_6f .line 222 :try_start_3c invoke-direct {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->readJournal()V .line 223 invoke-direct {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->processJournal()V :try_end_42 .catch Ljava/io/IOException; {:try_start_3c .. :try_end_42} :catch_43 return-object v0 :catch_43 move-exception v1 .line 226 sget-object v2, Ljava/lang/System;->out:Ljava/io/PrintStream; new-instance v3, Ljava/lang/StringBuilder; const-string v4, "DiskLruCache " invoke-direct {v3, v4}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v3 const-string v4, " is corrupt: " invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 .line 230 invoke-virtual {v1}, Ljava/io/IOException;->getMessage()Ljava/lang/String; move-result-object v1 invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 const-string v3, ", removing" invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 .line 227 invoke-virtual {v2, v1}, Ljava/io/PrintStream;->println(Ljava/lang/String;)V .line 232 invoke-virtual {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->delete()V .line 237 :cond_6f invoke-virtual {p0}, Ljava/io/File;->mkdirs()Z .line 238 new-instance v0, Lcom/bumptech/glide/disklrucache/DiskLruCache; move-object v3, v0 move-object v4, p0 move v5, p1 move v6, p2 move-wide v7, p3 invoke-direct/range {v3 .. v8}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->(Ljava/io/File;IIJ)V .line 239 invoke-direct {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->rebuildJournal()V return-object v0 .line 203 :cond_80 new-instance p0, Ljava/lang/IllegalArgumentException; const-string p1, "valueCount <= 0" invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p0 .line 200 :cond_88 new-instance p0, Ljava/lang/IllegalArgumentException; const-string p1, "maxSize <= 0" invoke-direct {p0, p1}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p0 .end method .method private processJournal()V .registers 9 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 327 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFileTmp:Ljava/io/File; invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->deleteIfExists(Ljava/io/File;)V .line 328 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v0}, Ljava/util/LinkedHashMap;->values()Ljava/util/Collection; move-result-object v0 invoke-interface {v0}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_f :goto_f invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_51 .line 329 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; .line 330 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$800(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object v2 const/4 v3, 0x0 if-nez v2, :cond_34 .line 331 :goto_22 iget v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I if-ge v3, v2, :cond_f .line 332 iget-wide v4, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->lengths:[J invoke-static {v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1100(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)[J move-result-object v2 aget-wide v6, v2, v3 add-long/2addr v4, v6 iput-wide v4, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J add-int/lit8 v3, v3, 0x1 goto :goto_22 :cond_34 const/4 v2, 0x0 .line 335 # setter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v1, v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$802(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; .line 336 :goto_38 iget v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I if-ge v3, v2, :cond_4d .line 337 invoke-virtual {v1, v3}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->getCleanFile(I)Ljava/io/File; move-result-object v2 invoke-static {v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->deleteIfExists(Ljava/io/File;)V .line 338 invoke-virtual {v1, v3}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->getDirtyFile(I)Ljava/io/File; move-result-object v2 invoke-static {v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->deleteIfExists(Ljava/io/File;)V add-int/lit8 v3, v3, 0x1 goto :goto_38 .line 340 :cond_4d invoke-interface {v0}, Ljava/util/Iterator;->remove()V goto :goto_f :cond_51 return-void .end method .method private readJournal()V .registers 10 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 244 const-string v0, ", " .line 0 const-string v1, "unexpected journal header: [" .line 244 new-instance v2, Lcom/bumptech/glide/disklrucache/StrictLineReader; new-instance v3, Ljava/io/FileInputStream; iget-object v4, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFile:Ljava/io/File; invoke-direct {v3, v4}, Ljava/io/FileInputStream;->(Ljava/io/File;)V sget-object v4, Lcom/bumptech/glide/disklrucache/Util;->US_ASCII:Ljava/nio/charset/Charset; invoke-direct {v2, v3, v4}, Lcom/bumptech/glide/disklrucache/StrictLineReader;->(Ljava/io/InputStream;Ljava/nio/charset/Charset;)V .line 246 :try_start_12 invoke-virtual {v2}, Lcom/bumptech/glide/disklrucache/StrictLineReader;->readLine()Ljava/lang/String; move-result-object v3 .line 247 invoke-virtual {v2}, Lcom/bumptech/glide/disklrucache/StrictLineReader;->readLine()Ljava/lang/String; move-result-object v4 .line 248 invoke-virtual {v2}, Lcom/bumptech/glide/disklrucache/StrictLineReader;->readLine()Ljava/lang/String; move-result-object v5 .line 249 invoke-virtual {v2}, Lcom/bumptech/glide/disklrucache/StrictLineReader;->readLine()Ljava/lang/String; move-result-object v6 .line 250 invoke-virtual {v2}, Lcom/bumptech/glide/disklrucache/StrictLineReader;->readLine()Ljava/lang/String; move-result-object v7 .line 251 const-string v8, "libcore.io.DiskLruCache" invoke-virtual {v8, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v8 if-eqz v8, :cond_8e const-string v8, "1" .line 252 invoke-virtual {v8, v4}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v8 if-eqz v8, :cond_8e iget v8, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->appVersion:I .line 253 invoke-static {v8}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; move-result-object v8 invoke-virtual {v8, v5}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v5 if-eqz v5, :cond_8e iget v5, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I .line 254 invoke-static {v5}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; move-result-object v5 invoke-virtual {v5, v6}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v5 if-eqz v5, :cond_8e const-string v5, "" .line 255 invoke-virtual {v5, v7}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z move-result v5 :try_end_54 .catchall {:try_start_12 .. :try_end_54} :catchall_bf if-eqz v5, :cond_8e const/4 v0, 0x0 .line 263 :goto_57 :try_start_57 invoke-virtual {v2}, Lcom/bumptech/glide/disklrucache/StrictLineReader;->readLine()Ljava/lang/String; move-result-object v1 invoke-direct {p0, v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->readJournalLine(Ljava/lang/String;)V :try_end_5e .catch Ljava/io/EOFException; {:try_start_57 .. :try_end_5e} :catch_61 .catchall {:try_start_57 .. :try_end_5e} :catchall_bf add-int/lit8 v0, v0, 0x1 goto :goto_57 .line 269 :catch_61 :try_start_61 iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v1}, Ljava/util/LinkedHashMap;->size()I move-result v1 sub-int/2addr v0, v1 iput v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I .line 272 invoke-virtual {v2}, Lcom/bumptech/glide/disklrucache/StrictLineReader;->hasUnterminatedLine()Z move-result v0 if-eqz v0, :cond_74 .line 273 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->rebuildJournal()V goto :goto_8a .line 275 :cond_74 new-instance v0, Ljava/io/BufferedWriter; new-instance v1, Ljava/io/OutputStreamWriter; new-instance v3, Ljava/io/FileOutputStream; iget-object v4, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFile:Ljava/io/File; const/4 v5, 0x1 invoke-direct {v3, v4, v5}, Ljava/io/FileOutputStream;->(Ljava/io/File;Z)V sget-object v4, Lcom/bumptech/glide/disklrucache/Util;->US_ASCII:Ljava/nio/charset/Charset; invoke-direct {v1, v3, v4}, Ljava/io/OutputStreamWriter;->(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V invoke-direct {v0, v1}, Ljava/io/BufferedWriter;->(Ljava/io/Writer;)V iput-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; :try_end_8a .catchall {:try_start_61 .. :try_end_8a} :catchall_bf .line 279 :goto_8a invoke-static {v2}, Lcom/bumptech/glide/disklrucache/Util;->closeQuietly(Ljava/io/Closeable;)V return-void .line 256 :cond_8e :try_start_8e new-instance v5, Ljava/io/IOException; new-instance v8, Ljava/lang/StringBuilder; invoke-direct {v8, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v8, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, "]" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v5, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v5 :try_end_bf .catchall {:try_start_8e .. :try_end_bf} :catchall_bf :catchall_bf move-exception v0 .line 279 invoke-static {v2}, Lcom/bumptech/glide/disklrucache/Util;->closeQuietly(Ljava/io/Closeable;)V .line 280 throw v0 .end method .method private readJournalLine(Ljava/lang/String;)V .registers 10 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const/16 v0, 0x20 .line 284 invoke-virtual {p1, v0}, Ljava/lang/String;->indexOf(I)I move-result v1 .line 285 const-string v2, "unexpected journal line: " const/4 v3, -0x1 if-eq v1, v3, :cond_a7 add-int/lit8 v4, v1, 0x1 .line 290 invoke-virtual {p1, v0, v4}, Ljava/lang/String;->indexOf(II)I move-result v0 if-ne v0, v3, :cond_2b .line 293 invoke-virtual {p1, v4}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object v4 .line 294 const-string v5, "REMOVE" invoke-virtual {v5}, Ljava/lang/String;->length()I move-result v6 if-ne v1, v6, :cond_2f invoke-virtual {p1, v5}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v5 if-eqz v5, :cond_2f .line 295 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {p1, v4}, Ljava/util/LinkedHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; return-void .line 299 :cond_2b invoke-virtual {p1, v4, v0}, Ljava/lang/String;->substring(II)Ljava/lang/String; move-result-object v4 .line 302 :cond_2f iget-object v5, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v5, v4}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v5 check-cast v5, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; const/4 v6, 0x0 if-nez v5, :cond_44 .line 304 new-instance v5, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; invoke-direct {v5, p0, v4, v6}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->(Lcom/bumptech/glide/disklrucache/DiskLruCache;Ljava/lang/String;Lcom/bumptech/glide/disklrucache/DiskLruCache$1;)V .line 305 iget-object v7, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v7, v4, v5}, Ljava/util/LinkedHashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; :cond_44 if-eq v0, v3, :cond_6a .line 308 const-string v4, "CLEAN" invoke-virtual {v4}, Ljava/lang/String;->length()I move-result v7 if-ne v1, v7, :cond_6a invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v4 if-eqz v4, :cond_6a const/4 v1, 0x1 add-int/2addr v0, v1 .line 309 invoke-virtual {p1, v0}, Ljava/lang/String;->substring(I)Ljava/lang/String; move-result-object p1 const-string v0, " " invoke-virtual {p1, v0}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String; move-result-object p1 .line 310 # setter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->readable:Z invoke-static {v5, v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$702(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Z)Z .line 311 # setter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v5, v6}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$802(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; .line 312 # invokes: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->setLengths([Ljava/lang/String;)V invoke-static {v5, p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$900(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;[Ljava/lang/String;)V goto :goto_93 :cond_6a if-ne v0, v3, :cond_83 .line 313 const-string v4, "DIRTY" invoke-virtual {v4}, Ljava/lang/String;->length()I move-result v7 if-ne v1, v7, :cond_83 invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v4 if-eqz v4, :cond_83 .line 314 new-instance p1, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-direct {p1, p0, v5, v6}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->(Lcom/bumptech/glide/disklrucache/DiskLruCache;Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Lcom/bumptech/glide/disklrucache/DiskLruCache$1;)V # setter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v5, p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$802(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; goto :goto_93 :cond_83 if-ne v0, v3, :cond_94 .line 315 const-string v0, "READ" invoke-virtual {v0}, Ljava/lang/String;->length()I move-result v3 if-ne v1, v3, :cond_94 invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_94 :goto_93 return-void .line 318 :cond_94 new-instance v0, Ljava/io/IOException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 .line 286 :cond_a7 new-instance v0, Ljava/io/IOException; new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object p1 invoke-virtual {p1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-direct {v0, p1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 .end method .method private declared-synchronized rebuildJournal()V .registers 7 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 350 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; if-eqz v0, :cond_8 .line 351 invoke-virtual {v0}, Ljava/io/Writer;->close()V .line 354 :cond_8 new-instance v0, Ljava/io/BufferedWriter; new-instance v1, Ljava/io/OutputStreamWriter; new-instance v2, Ljava/io/FileOutputStream; iget-object v3, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFileTmp:Ljava/io/File; invoke-direct {v2, v3}, Ljava/io/FileOutputStream;->(Ljava/io/File;)V sget-object v3, Lcom/bumptech/glide/disklrucache/Util;->US_ASCII:Ljava/nio/charset/Charset; invoke-direct {v1, v2, v3}, Ljava/io/OutputStreamWriter;->(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V invoke-direct {v0, v1}, Ljava/io/BufferedWriter;->(Ljava/io/Writer;)V :try_end_1b .catchall {:try_start_1 .. :try_end_1b} :catchall_f0 .line 357 :try_start_1b const-string v1, "libcore.io.DiskLruCache" invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 358 const-string v1, "\n" invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 359 const-string v1, "1" invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 360 const-string v1, "\n" invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 361 iget v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->appVersion:I invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 362 const-string v1, "\n" invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 363 iget v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 364 const-string v1, "\n" invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 365 const-string v1, "\n" invoke-virtual {v0, v1}, Ljava/io/Writer;->write(Ljava/lang/String;)V .line 367 iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v1}, Ljava/util/LinkedHashMap;->values()Ljava/util/Collection; move-result-object v1 invoke-interface {v1}, Ljava/util/Collection;->iterator()Ljava/util/Iterator; move-result-object v1 :goto_5a invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z move-result v2 if-eqz v2, :cond_b4 invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v2 check-cast v2, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; .line 368 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$800(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object v3 const/16 v4, 0xa if-eqz v3, :cond_8d .line 369 new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v5, "DIRTY " invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->key:Ljava/lang/String; invoke-static {v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1200(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Ljava/lang/String; move-result-object v2 invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-virtual {v0, v2}, Ljava/io/Writer;->write(Ljava/lang/String;)V goto :goto_5a .line 371 :cond_8d new-instance v3, Ljava/lang/StringBuilder; invoke-direct {v3}, Ljava/lang/StringBuilder;->()V const-string v5, "CLEAN " invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->key:Ljava/lang/String; invoke-static {v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1200(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Ljava/lang/String; move-result-object v5 invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v3 invoke-virtual {v2}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->getLengths()Ljava/lang/String; move-result-object v2 invoke-virtual {v3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2, v4}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v2 invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v2 invoke-virtual {v0, v2}, Ljava/io/Writer;->write(Ljava/lang/String;)V :try_end_b3 .catchall {:try_start_1b .. :try_end_b3} :catchall_eb goto :goto_5a .line 375 :cond_b4 :try_start_b4 invoke-virtual {v0}, Ljava/io/Writer;->close()V .line 378 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFile:Ljava/io/File; invoke-virtual {v0}, Ljava/io/File;->exists()Z move-result v0 const/4 v1, 0x1 if-eqz v0, :cond_c7 .line 379 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFile:Ljava/io/File; iget-object v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFileBackup:Ljava/io/File; invoke-static {v0, v2, v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->renameTo(Ljava/io/File;Ljava/io/File;Z)V .line 381 :cond_c7 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFileTmp:Ljava/io/File; iget-object v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFile:Ljava/io/File; const/4 v3, 0x0 invoke-static {v0, v2, v3}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->renameTo(Ljava/io/File;Ljava/io/File;Z)V .line 382 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFileBackup:Ljava/io/File; invoke-virtual {v0}, Ljava/io/File;->delete()Z .line 384 new-instance v0, Ljava/io/BufferedWriter; new-instance v2, Ljava/io/OutputStreamWriter; new-instance v3, Ljava/io/FileOutputStream; iget-object v4, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalFile:Ljava/io/File; invoke-direct {v3, v4, v1}, Ljava/io/FileOutputStream;->(Ljava/io/File;Z)V sget-object v1, Lcom/bumptech/glide/disklrucache/Util;->US_ASCII:Ljava/nio/charset/Charset; invoke-direct {v2, v3, v1}, Ljava/io/OutputStreamWriter;->(Ljava/io/OutputStream;Ljava/nio/charset/Charset;)V invoke-direct {v0, v2}, Ljava/io/BufferedWriter;->(Ljava/io/Writer;)V iput-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; :try_end_e9 .catchall {:try_start_b4 .. :try_end_e9} :catchall_f0 .line 386 monitor-exit p0 return-void :catchall_eb move-exception v1 .line 375 :try_start_ec invoke-virtual {v0}, Ljava/io/Writer;->close()V .line 376 throw v1 :catchall_f0 move-exception v0 monitor-exit p0 :try_end_f2 .catchall {:try_start_ec .. :try_end_f2} :catchall_f0 throw v0 .end method .method private static renameTo(Ljava/io/File;Ljava/io/File;Z)V .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation if-eqz p2, :cond_5 .line 396 invoke-static {p1}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->deleteIfExists(Ljava/io/File;)V .line 398 :cond_5 invoke-virtual {p0, p1}, Ljava/io/File;->renameTo(Ljava/io/File;)Z move-result p0 if-eqz p0, :cond_c return-void .line 399 :cond_c new-instance p0, Ljava/io/IOException; invoke-direct {p0}, Ljava/io/IOException;->()V throw p0 .end method .method private trimToSize()V .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 647 :goto_0 iget-wide v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J iget-wide v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->maxSize:J cmp-long v0, v0, v2 if-lez v0, :cond_22 .line 648 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v0}, Ljava/util/LinkedHashMap;->entrySet()Ljava/util/Set; move-result-object v0 invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator; move-result-object v0 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/util/Map$Entry; .line 649 invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object; move-result-object v0 check-cast v0, Ljava/lang/String; invoke-virtual {p0, v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->remove(Ljava/lang/String;)Z goto :goto_0 :cond_22 return-void .end method # virtual methods .method public declared-synchronized close()V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 633 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_3d if-nez v0, :cond_7 .line 634 monitor-exit p0 return-void .line 636 :cond_7 :try_start_7 new-instance v0, Ljava/util/ArrayList; iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v1}, Ljava/util/LinkedHashMap;->values()Ljava/util/Collection; move-result-object v1 invoke-direct {v0, v1}, Ljava/util/ArrayList;->(Ljava/util/Collection;)V invoke-virtual {v0}, Ljava/util/ArrayList;->iterator()Ljava/util/Iterator; move-result-object v0 :cond_16 :goto_16 invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v1 if-eqz v1, :cond_30 invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v1 check-cast v1, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; .line 637 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$800(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object v2 if-eqz v2, :cond_16 .line 638 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$800(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object v1 invoke-virtual {v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor;->abort()V goto :goto_16 .line 641 :cond_30 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->trimToSize()V .line 642 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {v0}, Ljava/io/Writer;->close()V const/4 v0, 0x0 .line 643 iput-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; :try_end_3b .catchall {:try_start_7 .. :try_end_3b} :catchall_3d .line 644 monitor-exit p0 return-void :catchall_3d move-exception v0 :try_start_3e monitor-exit p0 :try_end_3f .catchall {:try_start_3e .. :try_end_3f} :catchall_3d throw v0 .end method .method public delete()V .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 659 invoke-virtual {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->close()V .line 660 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->directory:Ljava/io/File; invoke-static {v0}, Lcom/bumptech/glide/disklrucache/Util;->deleteContents(Ljava/io/File;)V return-void .end method .method public edit(Ljava/lang/String;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-wide/16 v0, -0x1 .line 443 invoke-direct {p0, p1, v0, v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->edit(Ljava/lang/String;J)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object p1 return-object p1 .end method .method public declared-synchronized flush()V .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 626 :try_start_1 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->checkNotClosed()V .line 627 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->trimToSize()V .line 628 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {v0}, Ljava/io/Writer;->flush()V :try_end_c .catchall {:try_start_1 .. :try_end_c} :catchall_e .line 629 monitor-exit p0 return-void :catchall_e move-exception v0 :try_start_f monitor-exit p0 :try_end_10 .catchall {:try_start_f .. :try_end_10} :catchall_e throw v0 .end method .method public declared-synchronized get(Ljava/lang/String;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Value; .registers 11 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 409 :try_start_1 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->checkNotClosed()V .line 410 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v0, p1}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; :try_end_c .catchall {:try_start_1 .. :try_end_c} :catchall_6e const/4 v1, 0x0 if-nez v0, :cond_11 .line 412 monitor-exit p0 return-object v1 .line 415 :cond_11 :try_start_11 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->readable:Z invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$700(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Z move-result v2 :try_end_15 .catchall {:try_start_11 .. :try_end_15} :catchall_6e if-nez v2, :cond_19 .line 416 monitor-exit p0 return-object v1 .line 419 :cond_19 :try_start_19 iget-object v2, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->cleanFiles:[Ljava/io/File; array-length v3, v2 const/4 v4, 0x0 :goto_1d if-ge v4, v3, :cond_2c aget-object v5, v2, v4 .line 421 invoke-virtual {v5}, Ljava/io/File;->exists()Z move-result v5 :try_end_25 .catchall {:try_start_19 .. :try_end_25} :catchall_6e if-nez v5, :cond_29 .line 422 monitor-exit p0 return-object v1 :cond_29 add-int/lit8 v4, v4, 0x1 goto :goto_1d .line 426 :cond_2c :try_start_2c iget v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I add-int/lit8 v1, v1, 0x1 iput v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I .line 427 iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const-string v2, "READ" invoke-virtual {v1, v2}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 428 iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const/16 v2, 0x20 invoke-virtual {v1, v2}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 429 iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {v1, p1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 430 iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const/16 v2, 0xa invoke-virtual {v1, v2}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 431 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalRebuildRequired()Z move-result v1 if-eqz v1, :cond_59 .line 432 iget-object v1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->executorService:Ljava/util/concurrent/ThreadPoolExecutor; iget-object v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->cleanupCallable:Ljava/util/concurrent/Callable; invoke-virtual {v1, v2}, Ljava/util/concurrent/ThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; .line 435 :cond_59 new-instance v8, Lcom/bumptech/glide/disklrucache/DiskLruCache$Value; # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->sequenceNumber:J invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1300(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)J move-result-wide v3 iget-object v5, v0, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->cleanFiles:[Ljava/io/File; # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->lengths:[J invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1100(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)[J move-result-object v6 const/4 v7, 0x0 move-object v0, v8 move-object v1, p0 move-object v2, p1 invoke-direct/range {v0 .. v7}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Value;->(Lcom/bumptech/glide/disklrucache/DiskLruCache;Ljava/lang/String;J[Ljava/io/File;[JLcom/bumptech/glide/disklrucache/DiskLruCache$1;)V :try_end_6c .catchall {:try_start_2c .. :try_end_6c} :catchall_6e monitor-exit p0 return-object v8 :catchall_6e move-exception p1 :try_start_6f monitor-exit p0 :try_end_70 .catchall {:try_start_6f .. :try_end_70} :catchall_6e throw p1 .end method .method public getDirectory()Ljava/io/File; .registers 2 .line 474 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->directory:Ljava/io/File; return-object v0 .end method .method public declared-synchronized getMaxSize()J .registers 3 monitor-enter p0 .line 482 :try_start_1 iget-wide v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->maxSize:J :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_5 monitor-exit p0 return-wide v0 :catchall_5 move-exception v0 :try_start_6 monitor-exit p0 :try_end_7 .catchall {:try_start_6 .. :try_end_7} :catchall_5 throw v0 .end method .method public declared-synchronized isClosed()Z .registers 2 monitor-enter p0 .line 615 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_a if-nez v0, :cond_7 const/4 v0, 0x1 goto :goto_8 :cond_7 const/4 v0, 0x0 :goto_8 monitor-exit p0 return v0 :catchall_a move-exception v0 :try_start_b monitor-exit p0 :try_end_c .catchall {:try_start_b .. :try_end_c} :catchall_a throw v0 .end method .method public declared-synchronized remove(Ljava/lang/String;)Z .registers 9 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 583 :try_start_1 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->checkNotClosed()V .line 584 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v0, p1}, Ljava/util/LinkedHashMap;->get(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry; const/4 v1, 0x0 if-eqz v0, :cond_8f .line 585 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->currentEditor:Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$800(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)Lcom/bumptech/glide/disklrucache/DiskLruCache$Editor; move-result-object v2 if-eqz v2, :cond_17 goto/16 :goto_8f .line 589 :cond_17 :goto_17 iget v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->valueCount:I if-ge v1, v2, :cond_5b .line 590 invoke-virtual {v0, v1}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->getCleanFile(I)Ljava/io/File; move-result-object v2 .line 591 invoke-virtual {v2}, Ljava/io/File;->exists()Z move-result v3 if-eqz v3, :cond_45 invoke-virtual {v2}, Ljava/io/File;->delete()Z move-result v3 if-eqz v3, :cond_2c goto :goto_45 .line 592 :cond_2c new-instance p1, Ljava/io/IOException; new-instance v0, Ljava/lang/StringBuilder; invoke-direct {v0}, Ljava/lang/StringBuilder;->()V const-string v1, "failed to delete " invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {p1, v0}, Ljava/io/IOException;->(Ljava/lang/String;)V throw p1 .line 594 :cond_45 :goto_45 iget-wide v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->lengths:[J invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1100(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)[J move-result-object v4 aget-wide v5, v4, v1 sub-long/2addr v2, v5 iput-wide v2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J .line 595 # getter for: Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->lengths:[J invoke-static {v0}, Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;->access$1100(Lcom/bumptech/glide/disklrucache/DiskLruCache$Entry;)[J move-result-object v2 const-wide/16 v3, 0x0 aput-wide v3, v2, v1 add-int/lit8 v1, v1, 0x1 goto :goto_17 .line 598 :cond_5b iget v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I const/4 v1, 0x1 add-int/2addr v0, v1 iput v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->redundantOpCount:I .line 599 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const-string v2, "REMOVE" invoke-virtual {v0, v2}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 600 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const/16 v2, 0x20 invoke-virtual {v0, v2}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 601 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; invoke-virtual {v0, p1}, Ljava/io/Writer;->append(Ljava/lang/CharSequence;)Ljava/io/Writer; .line 602 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalWriter:Ljava/io/Writer; const/16 v2, 0xa invoke-virtual {v0, v2}, Ljava/io/Writer;->append(C)Ljava/io/Writer; .line 604 iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->lruEntries:Ljava/util/LinkedHashMap; invoke-virtual {v0, p1}, Ljava/util/LinkedHashMap;->remove(Ljava/lang/Object;)Ljava/lang/Object; .line 606 invoke-direct {p0}, Lcom/bumptech/glide/disklrucache/DiskLruCache;->journalRebuildRequired()Z move-result p1 if-eqz p1, :cond_8d .line 607 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->executorService:Ljava/util/concurrent/ThreadPoolExecutor; iget-object v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->cleanupCallable:Ljava/util/concurrent/Callable; invoke-virtual {p1, v0}, Ljava/util/concurrent/ThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; :try_end_8d .catchall {:try_start_1 .. :try_end_8d} :catchall_91 .line 610 :cond_8d monitor-exit p0 return v1 .line 586 :cond_8f :goto_8f monitor-exit p0 return v1 :catchall_91 move-exception p1 :try_start_92 monitor-exit p0 :try_end_93 .catchall {:try_start_92 .. :try_end_93} :catchall_91 throw p1 .end method .method public declared-synchronized setMaxSize(J)V .registers 3 monitor-enter p0 .line 490 :try_start_1 iput-wide p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->maxSize:J .line 491 iget-object p1, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->executorService:Ljava/util/concurrent/ThreadPoolExecutor; iget-object p2, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->cleanupCallable:Ljava/util/concurrent/Callable; invoke-virtual {p1, p2}, Ljava/util/concurrent/ThreadPoolExecutor;->submit(Ljava/util/concurrent/Callable;)Ljava/util/concurrent/Future; :try_end_a .catchall {:try_start_1 .. :try_end_a} :catchall_c .line 492 monitor-exit p0 return-void :catchall_c move-exception p1 :try_start_d monitor-exit p0 :try_end_e .catchall {:try_start_d .. :try_end_e} :catchall_c throw p1 .end method .method public declared-synchronized size()J .registers 3 monitor-enter p0 .line 500 :try_start_1 iget-wide v0, p0, Lcom/bumptech/glide/disklrucache/DiskLruCache;->size:J :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_5 monitor-exit p0 return-wide v0 :catchall_5 move-exception v0 :try_start_6 monitor-exit p0 :try_end_7 .catchall {:try_start_6 .. :try_end_7} :catchall_5 throw v0 .end method