TinkerZipFile$RAFStream.smali
.class public Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;
.super Ljava/io/InputStream;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x9
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 10
invoke-virtual {p1}, Ljava/io/RandomAccessFile;->length()J
move-result-wide v4
move-object v0, p0
move-object v1, p1
move-wide v2, p2
invoke-direct/range {v0 .. v5}, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;-><init>(Ljava/io/RandomAccessFile;JJ)V
return-void
.end method
.method public constructor <init>(Ljava/io/RandomAccessFile;JJ)V
.registers 6
invoke-direct {p0}, Ljava/io/InputStream;-><init>()V
iput-object p1, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->sharedRaf:Ljava/io/RandomAccessFile;
iput-wide p2, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
iput-wide p4, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->endOffset:J
return-void
.end method
.method static synthetic access$102(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;J)J
.registers 4
iput-wide p1, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->endOffset:J
return-wide p1
.end method
.method static synthetic access$200(Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;)J
.registers 3
iget-wide v0, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
return-wide v0
.end method
# virtual methods
.method public available()I
.registers 5
iget-wide v0, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
iget-wide v2, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$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
invoke-static {p0}, Lcom/tencent/tinker/ziputils/ziputil/Streams;->readSingleByte(Ljava/io/InputStream;)I
move-result v0
return v0
.end method
.method public read([BII)I
.registers 10
iget-object v1, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->sharedRaf:Ljava/io/RandomAccessFile;
monitor-enter v1
:try_start_3
iget-wide v2, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->endOffset:J
iget-wide v4, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
sub-long/2addr v2, v4
int-to-long v4, p3
cmp-long v0, v4, v2
if-lez v0, :cond_e
long-to-int p3, v2
:cond_e
iget-object v0, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->sharedRaf:Ljava/io/RandomAccessFile;
iget-wide v2, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
invoke-virtual {v0, v2, v3}, Ljava/io/RandomAccessFile;->seek(J)V
iget-object v0, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->sharedRaf:Ljava/io/RandomAccessFile;
invoke-virtual {v0, p1, p2, p3}, Ljava/io/RandomAccessFile;->read([BII)I
move-result v0
if-lez v0, :cond_25
iget-wide v2, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
int-to-long v4, v0
add-long/2addr v2, v4
iput-wide v2, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
monitor-exit v1
:goto_24
return v0
:cond_25
const/4 v0, -0x1
monitor-exit v1
goto :goto_24
: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
iget-wide v0, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->endOffset:J
iget-wide v2, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
sub-long/2addr v0, v2
cmp-long v0, p1, v0
if-lez v0, :cond_f
iget-wide v0, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->endOffset:J
iget-wide v2, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
sub-long p1, v0, v2
:cond_f
iget-wide v0, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
add-long/2addr v0, p1
iput-wide v0, p0, Lcom/tencent/tinker/ziputils/ziputil/TinkerZipFile$RAFStream;->offset:J
return-wide p1
.end method