.class public Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder; .super Ljava/lang/Object; .source "StreamBitmapDecoder.java" # interfaces .implements Lcom/bumptech/glide/load/ResourceDecoder; # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder$UntrustedCallbacks; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Ljava/lang/Object;", "Lcom/bumptech/glide/load/ResourceDecoder<", "Ljava/io/InputStream;", "Landroid/graphics/Bitmap;", ">;" } .end annotation # instance fields .field private final byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; .field private final downsampler:Lcom/bumptech/glide/load/resource/bitmap/Downsampler; # direct methods .method public constructor (Lcom/bumptech/glide/load/resource/bitmap/Downsampler;Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;)V .registers 3 .line 23 invoke-direct {p0}, Ljava/lang/Object;->()V .line 24 iput-object p1, p0, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder;->downsampler:Lcom/bumptech/glide/load/resource/bitmap/Downsampler; .line 25 iput-object p2, p0, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; return-void .end method # virtual methods .method public decode(Ljava/io/InputStream;IILcom/bumptech/glide/load/Options;)Lcom/bumptech/glide/load/engine/Resource; .registers 14 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/io/InputStream;", "II", "Lcom/bumptech/glide/load/Options;", ")", "Lcom/bumptech/glide/load/engine/Resource<", "Landroid/graphics/Bitmap;", ">;" } .end annotation .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 41 instance-of v0, p1, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream; if-eqz v0, :cond_8 .line 42 check-cast p1, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream; const/4 v0, 0x0 goto :goto_13 .line 45 :cond_8 new-instance v0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream; iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; invoke-direct {v0, p1, v1}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->(Ljava/io/InputStream;Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;)V const/4 p1, 0x1 move-object v8, v0 move v0, p1 move-object p1, v8 .line 53 :goto_13 invoke-static {p1}, Lcom/bumptech/glide/util/ExceptionCatchingInputStream;->obtain(Ljava/io/InputStream;)Lcom/bumptech/glide/util/ExceptionCatchingInputStream; move-result-object v1 .line 59 new-instance v3, Lcom/bumptech/glide/util/MarkEnforcingInputStream; invoke-direct {v3, v1}, Lcom/bumptech/glide/util/MarkEnforcingInputStream;->(Ljava/io/InputStream;)V .line 60 new-instance v7, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder$UntrustedCallbacks; invoke-direct {v7, p1, v1}, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder$UntrustedCallbacks;->(Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;Lcom/bumptech/glide/util/ExceptionCatchingInputStream;)V .line 62 :try_start_21 iget-object v2, p0, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder;->downsampler:Lcom/bumptech/glide/load/resource/bitmap/Downsampler; move v4, p2 move v5, p3 move-object v6, p4 invoke-virtual/range {v2 .. v7}, Lcom/bumptech/glide/load/resource/bitmap/Downsampler;->decode(Ljava/io/InputStream;IILcom/bumptech/glide/load/Options;Lcom/bumptech/glide/load/resource/bitmap/Downsampler$DecodeCallbacks;)Lcom/bumptech/glide/load/engine/Resource; move-result-object p2 :try_end_2a .catchall {:try_start_21 .. :try_end_2a} :catchall_33 .line 64 invoke-virtual {v1}, Lcom/bumptech/glide/util/ExceptionCatchingInputStream;->release()V if-eqz v0, :cond_32 .line 66 invoke-virtual {p1}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->release()V :cond_32 return-object p2 :catchall_33 move-exception p2 .line 64 invoke-virtual {v1}, Lcom/bumptech/glide/util/ExceptionCatchingInputStream;->release()V if-eqz v0, :cond_3c .line 66 invoke-virtual {p1}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->release()V :cond_3c throw p2 .end method .method public bridge synthetic decode(Ljava/lang/Object;IILcom/bumptech/glide/load/Options;)Lcom/bumptech/glide/load/engine/Resource; .registers 5 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 18 check-cast p1, Ljava/io/InputStream; invoke-virtual {p0, p1, p2, p3, p4}, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder;->decode(Ljava/io/InputStream;IILcom/bumptech/glide/load/Options;)Lcom/bumptech/glide/load/engine/Resource; move-result-object p1 return-object p1 .end method .method public handles(Ljava/io/InputStream;Lcom/bumptech/glide/load/Options;)Z .registers 3 .line 30 iget-object p2, p0, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder;->downsampler:Lcom/bumptech/glide/load/resource/bitmap/Downsampler; invoke-virtual {p2, p1}, Lcom/bumptech/glide/load/resource/bitmap/Downsampler;->handles(Ljava/io/InputStream;)Z move-result p1 return p1 .end method .method public bridge synthetic handles(Ljava/lang/Object;Lcom/bumptech/glide/load/Options;)Z .registers 3 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 18 check-cast p1, Ljava/io/InputStream; invoke-virtual {p0, p1, p2}, Lcom/bumptech/glide/load/resource/bitmap/StreamBitmapDecoder;->handles(Ljava/io/InputStream;Lcom/bumptech/glide/load/Options;)Z move-result p1 return p1 .end method