ApkParser$RAFStream.smali
.class Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;
.super Ljava/io/InputStream;
.source "ApkParser.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/cleanmaster/junk/scan/ApkParser;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x8
name = "RAFStream"
.end annotation
# instance fields
.field private endOffset:J
.field private offset:J
.field private final sharedRaf:Ljava/io/RandomAccessFile;
# direct methods
.method public constructor <init>(Ljava/io/RandomAccessFile;J)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 148
invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
.line 149
iput-object p1, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->sharedRaf:Ljava/io/RandomAccessFile;
.line 150
iput-wide p2, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
.line 151
invoke-virtual {p1}, Ljava/io/RandomAccessFile;->length()J
move-result-wide v0
iput-wide v0, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->endOffset:J
.line 152
return-void
.end method
# virtual methods
.method public available()I
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 156
iget-wide v0, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
iget-wide v2, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->endOffset:J
cmp-long v0, v0, v2
if-gez v0, :cond_a
const/4 v0, 0x1
:goto_9
return v0
:cond_a
const/4 v0, 0x0
goto :goto_9
.end method
.method public read()I
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 161
invoke-static {p0}, Lcom/cleanmaster/junk/util/Streams;->readSingleByte(Ljava/io/InputStream;)I
move-result v0
return v0
.end method
.method public read([BII)I
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 167
iget-object v1, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->sharedRaf:Ljava/io/RandomAccessFile;
monitor-enter v1
.line 168
:try_start_3
iget-wide v2, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->endOffset:J
iget-wide v4, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
sub-long/2addr v2, v4
.line 169
int-to-long v4, p3
cmp-long v0, v4, v2
if-lez v0, :cond_e
.line 170
long-to-int p3, v2
.line 172
:cond_e
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->sharedRaf:Ljava/io/RandomAccessFile;
iget-wide v2, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
invoke-virtual {v0, v2, v3}, Ljava/io/RandomAccessFile;->seek(J)V
.line 173
iget-object v0, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->sharedRaf:Ljava/io/RandomAccessFile;
invoke-virtual {v0, p1, p2, p3}, Ljava/io/RandomAccessFile;->read([BII)I
move-result v0
.line 174
if-lez v0, :cond_25
.line 175
iget-wide v2, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
int-to-long v4, v0
add-long/2addr v2, v4
iput-wide v2, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
.line 176
monitor-exit v1
.line 178
:goto_24
return v0
:cond_25
const/4 v0, -0x1
monitor-exit v1
goto :goto_24
.line 180
:catchall_28
move-exception v0
monitor-exit v1
:try_end_2a
.catchall {:try_start_3 .. :try_end_2a} :catchall_28
throw v0
.end method
.method public skip(J)J
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 185
iget-wide v0, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->endOffset:J
iget-wide v2, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
sub-long/2addr v0, v2
cmp-long v0, p1, v0
if-lez v0, :cond_f
.line 186
iget-wide v0, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->endOffset:J
iget-wide v2, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
sub-long p1, v0, v2
.line 188
:cond_f
iget-wide v0, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
add-long/2addr v0, p1
iput-wide v0, p0, Lcom/cleanmaster/junk/scan/ApkParser$RAFStream;->offset:J
.line 189
return-wide p1
.end method