DefaultImageHeaderParser$StreamReader.smali
.class final Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;
.super Ljava/lang/Object;
.source "DefaultImageHeaderParser.java"
# interfaces
.implements Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$Reader;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "StreamReader"
.end annotation
# instance fields
.field private final is:Ljava/io/InputStream;
# direct methods
.method static constructor <clinit>()V
.registers 1
return-void
.end method
.method constructor <init>(Ljava/io/InputStream;)V
.registers 2
.param p1, "is" # Ljava/io/InputStream;
.line 456
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 457
iput-object p1, p0, Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;->is:Ljava/io/InputStream;
.line 458
return-void
.end method
# virtual methods
.method public getByte()I
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 509
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;->is:Ljava/io/InputStream;
invoke-virtual {v0}, Ljava/io/InputStream;->read()I
move-result v0
return v0
.end method
.method public getUInt16()I
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 462
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;->is:Ljava/io/InputStream;
invoke-virtual {v0}, Ljava/io/InputStream;->read()I
move-result v0
shl-int/lit8 v0, v0, 0x8
const v1, 0xff00
and-int/2addr v0, v1
iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;->is:Ljava/io/InputStream;
invoke-virtual {v1}, Ljava/io/InputStream;->read()I
move-result v1
and-int/lit16 v1, v1, 0xff
or-int/2addr v0, v1
return v0
.end method
.method public getUInt8()S
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 467
iget-object v0, p0, Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;->is:Ljava/io/InputStream;
invoke-virtual {v0}, Ljava/io/InputStream;->read()I
move-result v0
and-int/lit16 v0, v0, 0xff
int-to-short v0, v0
return v0
.end method
.method public read([BI)I
.registers 7
.param p1, "buffer" # [B
.param p2, "byteCount" # I
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 499
move v0, p2
.line 501
.local v0, "toRead":I
:goto_1
if-lez v0, :cond_11
iget-object v1, p0, Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;->is:Ljava/io/InputStream;
sub-int v2, p2, v0
invoke-virtual {v1, p1, v2, v0}, Ljava/io/InputStream;->read([BII)I
move-result v1
move v2, v1
.local v2, "read":I
const/4 v3, -0x1
if-eq v1, v3, :cond_11
.line 502
sub-int/2addr v0, v2
goto :goto_1
.line 504
.end local v2 # "read":I
:cond_11
sub-int v1, p2, v0
return v1
.end method
.method public skip(J)J
.registers 12
.param p1, "total" # J
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 472
const-wide/16 v0, 0x0
cmp-long v2, p1, v0
if-gez v2, :cond_7
.line 473
return-wide v0
.line 476
:cond_7
move-wide v2, p1
.line 477
.local v2, "toSkip":J
:goto_8
cmp-long v4, v2, v0
if-lez v4, :cond_26
.line 478
iget-object v4, p0, Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;->is:Ljava/io/InputStream;
invoke-virtual {v4, v2, v3}, Ljava/io/InputStream;->skip(J)J
move-result-wide v4
.line 479
.local v4, "skipped":J
cmp-long v6, v4, v0
if-lez v6, :cond_18
.line 480
sub-long/2addr v2, v4
goto :goto_25
.line 486
:cond_18
iget-object v6, p0, Lcom/bumptech/glide/load/resource/bitmap/DefaultImageHeaderParser$StreamReader;->is:Ljava/io/InputStream;
invoke-virtual {v6}, Ljava/io/InputStream;->read()I
move-result v6
.line 487
.local v6, "testEofByte":I
const/4 v7, -0x1
if-ne v6, v7, :cond_22
.line 488
goto :goto_26
.line 490
:cond_22
const-wide/16 v7, 0x1
sub-long/2addr v2, v7
.line 493
.end local v4 # "skipped":J
.end local v6 # "testEofByte":I
:goto_25
goto :goto_8
.line 494
:cond_26
:goto_26
sub-long v0, p1, v2
return-wide v0
.end method