RecyclableBufferedInputStream.smali
.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 <init>(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;-><init>(Ljava/io/InputStream;Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;I)V
return-void
.end method
.method constructor <init>(Ljava/io/InputStream;Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;I)V
.registers 4
.line 75
invoke-direct {p0, p1}, Ljava/io/FilterInputStream;-><init>(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, -0x1
const/4 v2, 0x0
if-eq v0, v1, :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 v1, p2
if-le v4, v1, :cond_36
iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I
array-length v3, p2
if-ne v1, 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 v1, [B
invoke-interface {v0, v4, v1}, 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 v1, p2
invoke-static {p2, v2, v0, v2, v1}, 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 v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
invoke-interface {v1, 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 v1, p2
sub-int/2addr v1, v0
invoke-static {p2, v0, p2, v2, v1}, 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 v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
sub-int/2addr v0, v1
iput v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
.line 179
iput v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
iput v2, 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 v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
.line 147
iput v2, 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;-><init>(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
:try_end_1a
.catchall {:try_start_15 .. :try_end_1a} :catchall_1a
:catchall_1a
move-exception v0
monitor-exit p0
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
monitor-exit p0
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
monitor-exit p0
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
:try_end_3e
.catchall {:try_start_39 .. :try_end_3e} :catchall_3e
:catchall_3e
move-exception v0
monitor-exit p0
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
const/4 p1, 0x0
.line 282
monitor-exit p0
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
:try_end_90
.catchall {:try_start_86 .. :try_end_90} :catchall_90
:catchall_90
move-exception p1
monitor-exit p0
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
monitor-exit p0
throw v0
.end method
.method public declared-synchronized reset()V
.registers 4
.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/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
if-eqz v0, :cond_31
const/4 v0, -0x1
.line 353
iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
if-eq v0, v1, :cond_e
.line 357
iput v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
:try_end_c
.catchall {:try_start_1 .. :try_end_c} :catchall_39
.line 358
monitor-exit p0
return-void
.line 354
:cond_e
:try_start_e
new-instance v0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream$InvalidMarkException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Mark has been invalidated, pos: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " markLimit: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream$InvalidMarkException;-><init>(Ljava/lang/String;)V
throw v0
.line 351
:cond_31
new-instance v0, Ljava/io/IOException;
const-string v1, "Stream is closed"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_39
.catchall {:try_start_e .. :try_end_39} :catchall_39
:catchall_39
move-exception v0
monitor-exit p0
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
const-wide/16 p1, 0x0
.line 372
monitor-exit p0
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
:try_end_6d
.catchall {:try_start_63 .. :try_end_6d} :catchall_6d
:catchall_6d
move-exception p1
monitor-exit p0
throw p1
.end method