.class public Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream; .super Ljava/io/FilterInputStream; .source "RecyclableBufferedInputStream.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream$InvalidMarkException; } .end annotation # instance fields .field private volatile buf:[B .field private final byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; .field private count:I .field private marklimit:I .field private markpos:I .field private pos:I # direct methods .method public constructor (Ljava/io/InputStream;Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;)V .registers 4 const/high16 v0, 0x10000 .line 69 invoke-direct {p0, p1, p2, v0}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->(Ljava/io/InputStream;Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;I)V return-void .end method .method constructor (Ljava/io/InputStream;Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;I)V .registers 4 .line 75 invoke-direct {p0, p1}, Ljava/io/FilterInputStream;->(Ljava/io/InputStream;)V const/4 p1, -0x1 .line 60 iput p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I .line 76 iput-object p2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; .line 77 const-class p1, [B invoke-interface {p2, p3, p1}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->get(ILjava/lang/Class;)Ljava/lang/Object; move-result-object p1 check-cast p1, [B iput-object p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B return-void .end method .method private fillbuf(Ljava/io/InputStream;[B)I .registers 8 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 142 iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I const/4 v1, 0x0 const/4 v2, -0x1 if-eq v0, v2, :cond_57 iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I sub-int/2addr v3, v0 iget v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I if-lt v3, v4, :cond_e goto :goto_57 :cond_e if-nez v0, :cond_36 .line 161 array-length v2, p2 if-le v4, v2, :cond_36 iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I array-length v3, p2 if-ne v2, v3, :cond_36 .line 163 array-length v0, p2 mul-int/lit8 v0, v0, 0x2 if-le v0, v4, :cond_1e goto :goto_1f :cond_1e move v4, v0 .line 167 :goto_1f iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; const-class v2, [B invoke-interface {v0, v4, v2}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->get(ILjava/lang/Class;)Ljava/lang/Object; move-result-object v0 check-cast v0, [B .line 168 array-length v2, p2 invoke-static {p2, v1, v0, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 172 iput-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B .line 173 iget-object v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; invoke-interface {v2, p2}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->put(Ljava/lang/Object;)V move-object p2, v0 goto :goto_3d :cond_36 if-lez v0, :cond_3d .line 175 array-length v2, p2 sub-int/2addr v2, v0 invoke-static {p2, v0, p2, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 178 :cond_3d :goto_3d iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I sub-int/2addr v0, v2 iput v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I .line 179 iput v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I iput v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I .line 180 array-length v1, p2 sub-int/2addr v1, v0 invoke-virtual {p1, p2, v0, v1}, Ljava/io/InputStream;->read([BII)I move-result p1 .line 181 iget p2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I if-gtz p1, :cond_53 goto :goto_54 :cond_53 add-int/2addr p2, p1 :goto_54 iput p2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I return p1 .line 144 :cond_57 :goto_57 invoke-virtual {p1, p2}, Ljava/io/InputStream;->read([B)I move-result p1 if-lez p1, :cond_63 .line 146 iput v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I .line 147 iput v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I .line 148 iput p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I :cond_63 return p1 .end method .method private static streamClosed()Ljava/io/IOException; .registers 2 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 99 new-instance v0, Ljava/io/IOException; const-string v1, "BufferedInputStream is closed" invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 .end method # virtual methods .method public declared-synchronized available()I .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 91 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream; .line 92 iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B if-eqz v1, :cond_15 if-eqz v0, :cond_15 .line 95 iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I sub-int/2addr v1, v2 invoke-virtual {v0}, Ljava/io/InputStream;->available()I move-result v0 :try_end_12 .catchall {:try_start_1 .. :try_end_12} :catchall_1a add-int/2addr v1, v0 monitor-exit p0 return v1 .line 93 :cond_15 :try_start_15 invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException; move-result-object v0 throw v0 :catchall_1a move-exception v0 monitor-exit p0 :try_end_1c .catchall {:try_start_15 .. :try_end_1c} :catchall_1a throw v0 .end method .method public close()V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation .line 130 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B const/4 v1, 0x0 if-eqz v0, :cond_e .line 131 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; iget-object v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B invoke-interface {v0, v2}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->put(Ljava/lang/Object;)V .line 132 iput-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B .line 134 :cond_e iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream; .line 135 iput-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream; if-eqz v0, :cond_17 .line 137 invoke-virtual {v0}, Ljava/io/InputStream;->close()V :cond_17 return-void .end method .method public declared-synchronized fixMarkLimit()V .registers 2 monitor-enter p0 .line 112 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B array-length v0, v0 iput v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I :try_end_6 .catchall {:try_start_1 .. :try_end_6} :catchall_8 .line 113 monitor-exit p0 return-void :catchall_8 move-exception v0 :try_start_9 monitor-exit p0 :try_end_a .catchall {:try_start_9 .. :try_end_a} :catchall_8 throw v0 .end method .method public declared-synchronized mark(I)V .registers 3 monitor-enter p0 .line 200 :try_start_1 iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I invoke-static {v0, p1}, Ljava/lang/Math;->max(II)I move-result p1 iput p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I .line 201 iget p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I iput p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I :try_end_d .catchall {:try_start_1 .. :try_end_d} :catchall_f .line 202 monitor-exit p0 return-void :catchall_f move-exception p1 :try_start_10 monitor-exit p0 :try_end_11 .catchall {:try_start_10 .. :try_end_11} :catchall_f throw p1 .end method .method public markSupported()Z .registers 2 const/4 v0, 0x1 return v0 .end method .method public declared-synchronized read()I .registers 6 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 230 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B .line 231 iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream; if-eqz v0, :cond_39 if-eqz v1, :cond_39 .line 237 iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I const/4 v4, -0x1 if-lt v2, v3, :cond_18 invoke-direct {p0, v1, v0}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->fillbuf(Ljava/io/InputStream;[B)I move-result v1 :try_end_14 .catchall {:try_start_1 .. :try_end_14} :catchall_3e if-ne v1, v4, :cond_18 .line 239 monitor-exit p0 return v4 .line 242 :cond_18 :try_start_18 iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B if-eq v0, v1, :cond_26 .line 243 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B if-eqz v0, :cond_21 goto :goto_26 .line 245 :cond_21 invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException; move-result-object v0 throw v0 .line 250 :cond_26 :goto_26 iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I sub-int/2addr v1, v2 if-lez v1, :cond_37 add-int/lit8 v1, v2, 0x1 .line 251 iput v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I aget-byte v0, v0, v2 :try_end_33 .catchall {:try_start_18 .. :try_end_33} :catchall_3e and-int/lit16 v0, v0, 0xff monitor-exit p0 return v0 .line 253 :cond_37 monitor-exit p0 return v4 .line 233 :cond_39 :try_start_39 invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException; move-result-object v0 throw v0 :catchall_3e move-exception v0 monitor-exit p0 :try_end_40 .catchall {:try_start_39 .. :try_end_40} :catchall_3e throw v0 .end method .method public declared-synchronized read([BII)I .registers 10 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 .line 276 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B :try_end_3 .catchall {:try_start_1 .. :try_end_3} :catchall_90 if-eqz v0, :cond_8b if-nez p3, :cond_a .line 282 monitor-exit p0 const/4 p1, 0x0 return p1 .line 284 :cond_a :try_start_a iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream; if-eqz v1, :cond_86 .line 290 iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I if-ge v2, v3, :cond_32 sub-int v4, v3, v2 if-lt v4, p3, :cond_1a move v3, p3 goto :goto_1b :cond_1a sub-int/2addr v3, v2 .line 293 :goto_1b invoke-static {v0, v2, p1, p2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 294 iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I add-int/2addr v2, v3 iput v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I if-eq v3, p3, :cond_30 .line 295 invoke-virtual {v1}, Ljava/io/InputStream;->available()I move-result v2 :try_end_29 .catchall {:try_start_a .. :try_end_29} :catchall_90 if-nez v2, :cond_2c goto :goto_30 :cond_2c add-int/2addr p2, v3 sub-int v2, p3, v3 goto :goto_33 .line 296 :cond_30 :goto_30 monitor-exit p0 return v3 :cond_32 move v2, p3 .line 308 :goto_33 :try_start_33 iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I const/4 v4, -0x1 if-ne v3, v4, :cond_48 array-length v3, v0 if-lt v2, v3, :cond_48 .line 309 invoke-virtual {v1, p1, p2, v2}, Ljava/io/InputStream;->read([BII)I move-result v3 :try_end_3f .catchall {:try_start_33 .. :try_end_3f} :catchall_90 if-ne v3, v4, :cond_76 if-ne v2, p3, :cond_44 goto :goto_46 :cond_44 sub-int v4, p3, v2 .line 311 :goto_46 monitor-exit p0 return v4 .line 314 :cond_48 :try_start_48 invoke-direct {p0, v1, v0}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->fillbuf(Ljava/io/InputStream;[B)I move-result v3 :try_end_4c .catchall {:try_start_48 .. :try_end_4c} :catchall_90 if-ne v3, v4, :cond_55 if-ne v2, p3, :cond_51 goto :goto_53 :cond_51 sub-int v4, p3, v2 .line 315 :goto_53 monitor-exit p0 return v4 .line 318 :cond_55 :try_start_55 iget-object v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B if-eq v0, v3, :cond_63 .line 319 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B if-eqz v0, :cond_5e goto :goto_63 .line 321 :cond_5e invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException; move-result-object p1 throw p1 .line 325 :cond_63 :goto_63 iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I iget v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I sub-int v5, v3, v4 if-lt v5, v2, :cond_6d move v3, v2 goto :goto_6e :cond_6d sub-int/2addr v3, v4 .line 326 :goto_6e invoke-static {v0, v4, p1, p2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V .line 327 iget v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I add-int/2addr v4, v3 iput v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I :try_end_76 .catchall {:try_start_55 .. :try_end_76} :catchall_90 :cond_76 sub-int/2addr v2, v3 if-nez v2, :cond_7b .line 331 monitor-exit p0 return p3 .line 333 :cond_7b :try_start_7b invoke-virtual {v1}, Ljava/io/InputStream;->available()I move-result v4 :try_end_7f .catchall {:try_start_7b .. :try_end_7f} :catchall_90 if-nez v4, :cond_84 sub-int/2addr p3, v2 .line 334 monitor-exit p0 return p3 :cond_84 add-int/2addr p2, v3 goto :goto_33 .line 286 :cond_86 :try_start_86 invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException; move-result-object p1 throw p1 .line 278 :cond_8b invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException; move-result-object p1 throw p1 :catchall_90 move-exception p1 monitor-exit p0 :try_end_92 .catchall {:try_start_86 .. :try_end_92} :catchall_90 throw p1 .end method .method public declared-synchronized release()V .registers 3 monitor-enter p0 .line 116 :try_start_1 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B if-eqz v0, :cond_f .line 117 iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool; iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B invoke-interface {v0, v1}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->put(Ljava/lang/Object;)V const/4 v0, 0x0 .line 118 iput-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B :try_end_f .catchall {:try_start_1 .. :try_end_f} :catchall_11 .line 120 :cond_f monitor-exit p0 return-void :catchall_11 move-exception v0 :try_start_12 monitor-exit p0 :try_end_13 .catchall {:try_start_12 .. :try_end_13} :catchall_11 throw v0 .end method .method public declared-synchronized reset()V .registers 4 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation const-string v0, "Mark has been invalidated, pos: " monitor-enter p0 .line 350 :try_start_3 iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B if-eqz v1, :cond_31 .line 353 iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I const/4 v2, -0x1 if-eq v2, v1, :cond_10 .line 357 iput v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I :try_end_e .catchall {:try_start_3 .. :try_end_e} :catchall_39 .line 358 monitor-exit p0 return-void .line 354 :cond_10 :try_start_10 new-instance v1, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream$InvalidMarkException; new-instance v2, Ljava/lang/StringBuilder; invoke-direct {v2, v0}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 const-string v2, " markLimit: " invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v0 iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v0 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v0 invoke-direct {v1, v0}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream$InvalidMarkException;->(Ljava/lang/String;)V throw v1 .line 351 :cond_31 new-instance v0, Ljava/io/IOException; const-string v1, "Stream is closed" invoke-direct {v0, v1}, Ljava/io/IOException;->(Ljava/lang/String;)V throw v0 :catchall_39 move-exception v0 monitor-exit p0 :try_end_3b .catchall {:try_start_10 .. :try_end_3b} :catchall_39 throw v0 .end method .method public declared-synchronized skip(J)J .registers 11 .annotation system Ldalvik/annotation/Throws; value = { Ljava/io/IOException; } .end annotation monitor-enter p0 const-wide/16 v0, 0x1 cmp-long v0, p1, v0 if-gez v0, :cond_b .line 372 monitor-exit p0 const-wide/16 p1, 0x0 return-wide p1 .line 375 :cond_b :try_start_b iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B if-eqz v0, :cond_68 .line 379 iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream; if-eqz v1, :cond_63 .line 384 iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I sub-int v4, v2, v3 int-to-long v4, v4 cmp-long v4, v4, p1 if-ltz v4, :cond_25 int-to-long v0, v3 add-long/2addr v0, p1 long-to-int v0, v0 .line 385 iput v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I :try_end_23 .catchall {:try_start_b .. :try_end_23} :catchall_6d .line 386 monitor-exit p0 return-wide p1 :cond_25 int-to-long v4, v2 int-to-long v6, v3 sub-long/2addr v4, v6 .line 390 :try_start_28 iput v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I .line 392 iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I const/4 v3, -0x1 if-eq v2, v3, :cond_5b iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I int-to-long v6, v2 cmp-long v2, p1, v6 if-gtz v2, :cond_5b .line 393 invoke-direct {p0, v1, v0}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->fillbuf(Ljava/io/InputStream;[B)I move-result v0 :try_end_3a .catchall {:try_start_28 .. :try_end_3a} :catchall_6d if-ne v0, v3, :cond_3e .line 394 monitor-exit p0 return-wide v4 .line 396 :cond_3e :try_start_3e iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I sub-int v2, v0, v1 int-to-long v2, v2 sub-long v6, p1, v4 cmp-long v2, v2, v6 if-ltz v2, :cond_53 int-to-long v0, v1 add-long/2addr v0, p1 sub-long/2addr v0, v4 long-to-int v0, v0 .line 398 iput v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I :try_end_51 .catchall {:try_start_3e .. :try_end_51} :catchall_6d .line 399 monitor-exit p0 return-wide p1 :cond_53 int-to-long p1, v0 add-long/2addr v4, p1 int-to-long p1, v1 sub-long/2addr v4, p1 .line 403 :try_start_57 iput v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I :try_end_59 .catchall {:try_start_57 .. :try_end_59} :catchall_6d .line 404 monitor-exit p0 return-wide v4 :cond_5b sub-long/2addr p1, v4 .line 406 :try_start_5c invoke-virtual {v1, p1, p2}, Ljava/io/InputStream;->skip(J)J move-result-wide p1 :try_end_60 .catchall {:try_start_5c .. :try_end_60} :catchall_6d add-long/2addr v4, p1 monitor-exit p0 return-wide v4 .line 381 :cond_63 :try_start_63 invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException; move-result-object p1 throw p1 .line 377 :cond_68 invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException; move-result-object p1 throw p1 :catchall_6d move-exception p1 monitor-exit p0 :try_end_6f .catchall {:try_start_63 .. :try_end_6f} :catchall_6d throw p1 .end method