.class Lcom/bumptech/glide/load/engine/EngineResource; .super Ljava/lang/Object; .source "EngineResource.java" # interfaces .implements Lcom/bumptech/glide/load/engine/Resource; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "", "Ljava/lang/Object;", "Lcom/bumptech/glide/load/engine/Resource<", "TZ;>;" } .end annotation # instance fields .field private acquired:I .field private final isCacheable:Z .field private final isRecyclable:Z .field private isRecycled:Z .field private key:Lcom/bumptech/glide/load/Key; .field private listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener; .field private final resource: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 constructor (Lcom/bumptech/glide/load/engine/Resource;ZZ)V .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lcom/bumptech/glide/load/engine/Resource<", "TZ;>;ZZ)V" } .end annotation .line 27 invoke-direct {p0}, Ljava/lang/Object;->()V .line 28 invoke-static {p1}, Lcom/bumptech/glide/util/Preconditions;->checkNotNull(Ljava/lang/Object;)Ljava/lang/Object; move-result-object p1 check-cast p1, Lcom/bumptech/glide/load/engine/Resource; iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource; .line 29 iput-boolean p2, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isCacheable:Z .line 30 iput-boolean p3, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecyclable:Z return-void .end method # virtual methods .method declared-synchronized acquire()V .registers 3 monitor-enter p0 .line 87 :try_start_1 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecycled:Z if-nez v0, :cond_d .line 90 iget v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I add-int/lit8 v0, v0, 0x1 iput v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I :try_end_b .catchall {:try_start_1 .. :try_end_b} :catchall_15 .line 91 monitor-exit p0 return-void .line 88 :cond_d :try_start_d new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Cannot acquire a recycled resource" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 :catchall_15 move-exception v0 monitor-exit p0 :try_end_17 .catchall {:try_start_d .. :try_end_17} :catchall_15 throw v0 .end method .method public get()Ljava/lang/Object; .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "()TZ;" } .end annotation .line 55 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource: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 getResource()Lcom/bumptech/glide/load/engine/Resource; .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lcom/bumptech/glide/load/engine/Resource<", "TZ;>;" } .end annotation .line 39 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource; 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 49 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource: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 60 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource: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 isCacheable()Z .registers 2 .line 43 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isCacheable:Z return v0 .end method .method public declared-synchronized recycle()V .registers 3 monitor-enter p0 .line 65 :try_start_1 iget v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I if-gtz v0, :cond_1f .line 68 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecycled:Z if-nez v0, :cond_17 const/4 v0, 0x1 .line 71 iput-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecycled:Z .line 72 iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecyclable:Z if-eqz v0, :cond_15 .line 73 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource; invoke-interface {v0}, Lcom/bumptech/glide/load/engine/Resource;->recycle()V :try_end_15 .catchall {:try_start_1 .. :try_end_15} :catchall_27 .line 75 :cond_15 monitor-exit p0 return-void .line 69 :cond_17 :try_start_17 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Cannot recycle a resource that has already been recycled" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .line 66 :cond_1f new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Cannot recycle a resource while it is still acquired" invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 :catchall_27 move-exception v0 monitor-exit p0 :try_end_29 .catchall {:try_start_17 .. :try_end_29} :catchall_27 throw v0 .end method .method release()V .registers 4 .line 107 iget-object v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener; monitor-enter v0 .line 108 :try_start_3 monitor-enter p0 :try_end_4 .catchall {:try_start_3 .. :try_end_4} :catchall_23 .line 109 :try_start_4 iget v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I if-lez v1, :cond_18 add-int/lit8 v1, v1, -0x1 .line 112 iput v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->acquired:I if-nez v1, :cond_15 .line 113 iget-object v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener; iget-object v2, p0, Lcom/bumptech/glide/load/engine/EngineResource;->key:Lcom/bumptech/glide/load/Key; invoke-interface {v1, v2, p0}, Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;->onResourceReleased(Lcom/bumptech/glide/load/Key;Lcom/bumptech/glide/load/engine/EngineResource;)V .line 115 :cond_15 monitor-exit p0 :try_end_16 .catchall {:try_start_4 .. :try_end_16} :catchall_20 .line 116 :try_start_16 monitor-exit v0 :try_end_17 .catchall {:try_start_16 .. :try_end_17} :catchall_23 return-void .line 110 :cond_18 :try_start_18 new-instance v1, Ljava/lang/IllegalStateException; const-string v2, "Cannot release a recycled or not yet acquired resource" invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v1 :catchall_20 move-exception v1 .line 115 monitor-exit p0 :try_end_22 .catchall {:try_start_18 .. :try_end_22} :catchall_20 :try_start_22 throw v1 :catchall_23 move-exception v1 .line 116 monitor-exit v0 :try_end_25 .catchall {:try_start_22 .. :try_end_25} :catchall_23 throw v1 .end method .method declared-synchronized setResourceListener(Lcom/bumptech/glide/load/Key;Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener;)V .registers 3 monitor-enter p0 .line 34 :try_start_1 iput-object p1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->key:Lcom/bumptech/glide/load/Key; .line 35 iput-object p2, p0, Lcom/bumptech/glide/load/engine/EngineResource;->listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener; :try_end_5 .catchall {:try_start_1 .. :try_end_5} :catchall_7 .line 36 monitor-exit p0 return-void :catchall_7 move-exception p1 :try_start_8 monitor-exit p0 :try_end_9 .catchall {:try_start_8 .. :try_end_9} :catchall_7 throw p1 .end method .method public declared-synchronized toString()Ljava/lang/String; .registers 3 const-string v0, "EngineResource{isCacheable=" monitor-enter p0 .line 121 :try_start_3 new-instance v1, Ljava/lang/StringBuilder; invoke-direct {v1, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget-boolean v0, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isCacheable:Z invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", listener=" 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/EngineResource;->listener:Lcom/bumptech/glide/load/engine/EngineResource$ResourceListener; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", key=" 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/EngineResource;->key:Lcom/bumptech/glide/load/Key; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", acquired=" 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/EngineResource;->acquired:I invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", isRecycled=" invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget-boolean v1, p0, Lcom/bumptech/glide/load/engine/EngineResource;->isRecycled:Z invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder; move-result-object v0 const-string v1, ", resource=" 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/EngineResource;->resource:Lcom/bumptech/glide/load/engine/Resource; invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder; move-result-object v0 const/16 v1, 0x7d invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 :try_end_54 .catchall {:try_start_3 .. :try_end_54} :catchall_56 monitor-exit p0 return-object v0 :catchall_56 move-exception v0 :try_start_57 monitor-exit p0 :try_end_58 .catchall {:try_start_57 .. :try_end_58} :catchall_56 throw v0 .end method