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 67
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 73
invoke-direct {p0, p1}, Ljava/io/FilterInputStream;-><init>(Ljava/io/InputStream;)V
const/4 p1, -0x1
.line 58
iput p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
.line 74
iput-object p2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
.line 75
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 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 138
const-class v0, [B
iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
const/4 v2, -0x1
const/4 v3, 0x0
if-eq v1, v2, :cond_59
iget v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
sub-int/2addr v4, v1
iget v5, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I
if-lt v4, v5, :cond_10
goto :goto_59
:cond_10
if-nez v1, :cond_36
.line 157
array-length v1, p2
if-le v5, v1, :cond_36
iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I
array-length v2, p2
if-ne v1, v2, :cond_36
.line 159
array-length v1, p2
mul-int/lit8 v1, v1, 0x2
if-le v1, v5, :cond_20
goto :goto_21
:cond_20
move v5, v1
.line 163
:goto_21
iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
invoke-interface {v1, v5, v0}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->get(ILjava/lang/Class;)Ljava/lang/Object;
move-result-object v1
check-cast v1, [B
.line 164
array-length v2, p2
invoke-static {p2, v3, v1, v3, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 168
iput-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
.line 169
iget-object v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->byteArrayPool:Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;
invoke-interface {v2, p2, v0}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->put(Ljava/lang/Object;Ljava/lang/Class;)V
move-object p2, v1
goto :goto_3f
.line 170
:cond_36
iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
if-lez v0, :cond_3f
.line 171
array-length v1, p2
sub-int/2addr v1, v0
invoke-static {p2, v0, p2, v3, v1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 174
:cond_3f
:goto_3f
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 175
iput v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
iput v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I
.line 176
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 177
iget p2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
if-gtz p1, :cond_55
goto :goto_56
:cond_55
add-int/2addr p2, p1
:goto_56
iput p2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I
return p1
.line 140
:cond_59
:goto_59
invoke-virtual {p1, p2}, Ljava/io/InputStream;->read([B)I
move-result p1
if-lez p1, :cond_65
.line 142
iput v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
.line 143
iput v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
.line 144
iput p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I
:cond_65
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 97
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 89
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream;
.line 90
iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
if-eqz v1, :cond_15
if-eqz v0, :cond_15
.line 93
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 91
: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 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 126
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
const/4 v1, 0x0
if-eqz v0, :cond_10
.line 127
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
const-class v3, [B
invoke-interface {v0, v2, v3}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->put(Ljava/lang/Object;Ljava/lang/Class;)V
.line 128
iput-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
.line 130
:cond_10
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream;
.line 131
iput-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream;
if-eqz v0, :cond_19
.line 133
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
:cond_19
return-void
.end method
.method public declared-synchronized fixMarkLimit()V
.registers 2
monitor-enter p0
.line 108
: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 109
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 196
: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 197
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 198
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 226
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
.line 227
iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream;
if-eqz v0, :cond_3b
if-eqz v1, :cond_3b
.line 233
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_40
if-ne v1, v4, :cond_18
.line 235
monitor-exit p0
return v4
.line 238
: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 239
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
if-eqz v0, :cond_21
goto :goto_26
.line 241
:cond_21
invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException;
move-result-object v0
throw v0
.line 246
: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_39
.line 247
iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
add-int/lit8 v2, v1, 0x1
iput v2, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
aget-byte v0, v0, v1
:try_end_35
.catchall {:try_start_18 .. :try_end_35} :catchall_40
and-int/lit16 v0, v0, 0xff
monitor-exit p0
return v0
.line 249
:cond_39
monitor-exit p0
return v4
.line 229
:cond_3b
:try_start_3b
invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException;
move-result-object v0
throw v0
:try_end_40
.catchall {:try_start_3b .. :try_end_40} :catchall_40
:catchall_40
move-exception v0
monitor-exit p0
throw v0
.end method
.method public declared-synchronized read([BII)I
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
monitor-enter p0
.line 271
: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_9e
if-eqz v0, :cond_99
if-nez p3, :cond_a
const/4 p1, 0x0
.line 277
monitor-exit p0
return p1
.line 279
:cond_a
:try_start_a
iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream;
if-eqz v1, :cond_94
.line 285
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_3b
.line 287
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/2addr v2, v3
if-lt v2, p3, :cond_1d
move v2, p3
goto :goto_22
:cond_1d
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/2addr v2, v3
.line 288
:goto_22
iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
invoke-static {v0, v3, p1, p2, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 289
iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
add-int/2addr v3, v2
iput v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
if-eq v2, p3, :cond_39
.line 290
invoke-virtual {v1}, Ljava/io/InputStream;->available()I
move-result v3
:try_end_32
.catchall {:try_start_a .. :try_end_32} :catchall_9e
if-nez v3, :cond_35
goto :goto_39
:cond_35
add-int/2addr p2, v2
sub-int v2, p3, v2
goto :goto_3c
.line 291
:cond_39
:goto_39
monitor-exit p0
return v2
:cond_3b
move v2, p3
.line 303
:goto_3c
:try_start_3c
iget v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
const/4 v4, -0x1
if-ne v3, v4, :cond_51
array-length v3, v0
if-lt v2, v3, :cond_51
.line 304
invoke-virtual {v1, p1, p2, v2}, Ljava/io/InputStream;->read([BII)I
move-result v3
:try_end_48
.catchall {:try_start_3c .. :try_end_48} :catchall_9e
if-ne v3, v4, :cond_84
if-ne v2, p3, :cond_4d
goto :goto_4f
:cond_4d
sub-int v4, p3, v2
.line 306
:goto_4f
monitor-exit p0
return v4
.line 309
:cond_51
:try_start_51
invoke-direct {p0, v1, v0}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->fillbuf(Ljava/io/InputStream;[B)I
move-result v3
:try_end_55
.catchall {:try_start_51 .. :try_end_55} :catchall_9e
if-ne v3, v4, :cond_5e
if-ne v2, p3, :cond_5a
goto :goto_5c
:cond_5a
sub-int v4, p3, v2
.line 310
:goto_5c
monitor-exit p0
return v4
.line 313
:cond_5e
:try_start_5e
iget-object v3, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
if-eq v0, v3, :cond_6c
.line 314
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
if-eqz v0, :cond_67
goto :goto_6c
.line 316
:cond_67
invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException;
move-result-object p1
throw p1
.line 320
:cond_6c
:goto_6c
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/2addr v3, v4
if-lt v3, v2, :cond_75
move v3, v2
goto :goto_7a
:cond_75
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/2addr v3, v4
.line 321
:goto_7a
iget v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
invoke-static {v0, v4, p1, p2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 322
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_84
.catchall {:try_start_5e .. :try_end_84} :catchall_9e
:cond_84
sub-int/2addr v2, v3
if-nez v2, :cond_89
.line 326
monitor-exit p0
return p3
.line 328
:cond_89
:try_start_89
invoke-virtual {v1}, Ljava/io/InputStream;->available()I
move-result v4
:try_end_8d
.catchall {:try_start_89 .. :try_end_8d} :catchall_9e
if-nez v4, :cond_92
sub-int/2addr p3, v2
.line 329
monitor-exit p0
return p3
:cond_92
add-int/2addr p2, v3
goto :goto_3c
.line 281
:cond_94
:try_start_94
invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException;
move-result-object p1
throw p1
.line 273
:cond_99
invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException;
move-result-object p1
throw p1
:try_end_9e
.catchall {:try_start_94 .. :try_end_9e} :catchall_9e
:catchall_9e
move-exception p1
monitor-exit p0
throw p1
.end method
.method public declared-synchronized release()V
.registers 4
monitor-enter p0
.line 112
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
if-eqz v0, :cond_11
.line 113
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
const-class v2, [B
invoke-interface {v0, v1, v2}, Lcom/bumptech/glide/load/engine/bitmap_recycle/ArrayPool;->put(Ljava/lang/Object;Ljava/lang/Class;)V
const/4 v0, 0x0
.line 114
iput-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
:try_end_11
.catchall {:try_start_1 .. :try_end_11} :catchall_13
.line 116
:cond_11
monitor-exit p0
return-void
:catchall_13
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 345
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
if-eqz v0, :cond_33
const/4 v0, -0x1
.line 348
iget v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
if-eq v0, v1, :cond_10
.line 352
iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
iput v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
:try_end_e
.catchall {:try_start_1 .. :try_end_e} :catchall_3b
.line 353
monitor-exit p0
return-void
.line 349
:cond_10
:try_start_10
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 346
:cond_33
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_3b
.catchall {:try_start_10 .. :try_end_3b} :catchall_3b
:catchall_3b
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
.line 367
:try_start_1
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->buf:[B
.line 368
iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->in:Ljava/io/InputStream;
:try_end_5
.catchall {:try_start_1 .. :try_end_5} :catchall_79
if-eqz v0, :cond_74
const-wide/16 v2, 0x1
cmp-long v4, p1, v2
if-gez v4, :cond_11
const-wide/16 p1, 0x0
.line 373
monitor-exit p0
return-wide p1
:cond_11
if-eqz v1, :cond_6f
.line 379
:try_start_13
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/2addr v2, v3
int-to-long v2, v2
cmp-long v4, v2, p1
if-ltz v4, :cond_26
.line 380
iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
int-to-long v0, v0
add-long/2addr v0, p1
long-to-int v1, v0
iput v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
:try_end_24
.catchall {:try_start_13 .. :try_end_24} :catchall_79
.line 381
monitor-exit p0
return-wide p1
.line 383
:cond_26
:try_start_26
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/2addr v2, v3
int-to-long v2, v2
.line 384
iget v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I
iput v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
.line 386
iget v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->markpos:I
const/4 v5, -0x1
if-eq v4, v5, :cond_67
iget v4, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->marklimit:I
int-to-long v6, v4
cmp-long v4, p1, v6
if-gtz v4, :cond_67
.line 387
invoke-direct {p0, v1, v0}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->fillbuf(Ljava/io/InputStream;[B)I
move-result v0
:try_end_40
.catchall {:try_start_26 .. :try_end_40} :catchall_79
if-ne v0, v5, :cond_44
.line 388
monitor-exit p0
return-wide v2
.line 390
:cond_44
:try_start_44
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/2addr v0, v1
int-to-long v0, v0
sub-long v4, p1, v2
cmp-long v6, v0, v4
if-ltz v6, :cond_59
.line 391
iget v0, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
int-to-long v0, v0
add-long/2addr v0, v4
long-to-int v1, v0
iput v1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
:try_end_57
.catchall {:try_start_44 .. :try_end_57} :catchall_79
.line 392
monitor-exit p0
return-wide p1
.line 395
:cond_59
:try_start_59
iget p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I
int-to-long p1, p1
add-long/2addr v2, p1
iget p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
int-to-long p1, p1
sub-long/2addr v2, p1
.line 396
iget p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->count:I
iput p1, p0, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->pos:I
:try_end_65
.catchall {:try_start_59 .. :try_end_65} :catchall_79
.line 397
monitor-exit p0
return-wide v2
:cond_67
sub-long/2addr p1, v2
.line 399
:try_start_68
invoke-virtual {v1, p1, p2}, Ljava/io/InputStream;->skip(J)J
move-result-wide p1
:try_end_6c
.catchall {:try_start_68 .. :try_end_6c} :catchall_79
add-long/2addr v2, p1
monitor-exit p0
return-wide v2
.line 376
:cond_6f
:try_start_6f
invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException;
move-result-object p1
throw p1
.line 370
:cond_74
invoke-static {}, Lcom/bumptech/glide/load/resource/bitmap/RecyclableBufferedInputStream;->streamClosed()Ljava/io/IOException;
move-result-object p1
throw p1
:try_end_79
.catchall {:try_start_6f .. :try_end_79} :catchall_79
:catchall_79
move-exception p1
monitor-exit p0
throw p1
.end method