c.smali
.class Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;
.super Ljava/lang/Object;
.source "RAFBuffer.java"
# interfaces
.implements Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/a;
# instance fields
.field private a:J
.field private b:J
.field private c:Ljava/io/RandomAccessFile;
.field private d:Ljava/util/concurrent/atomic/AtomicBoolean;
.field private e:Ljava/io/File;
# direct methods
.method constructor <init>(JLjava/io/File;)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 18
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 15
new-instance v0, Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x0
invoke-direct {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;-><init>(Z)V
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
.line 19
iput-wide p1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
.line 20
iput-object p3, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->e:Ljava/io/File;
.line 21
invoke-virtual {p3}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v0
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 23
:try_start_16
new-instance v0, Ljava/io/RandomAccessFile;
const-string v1, "rw"
invoke-direct {v0, p3, v1}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
iput-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
.line 24
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
invoke-virtual {v0, p1, p2}, Ljava/io/RandomAccessFile;->setLength(J)V
:try_end_24
.catch Ljava/lang/Exception; {:try_start_16 .. :try_end_24} :catch_25
.line 29
return-void
.line 25
:catch_25
move-exception v0
.line 26
iget-object v1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
invoke-static {v1}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/b;->a(Ljava/io/Closeable;)Z
.line 27
new-instance v1, Ljava/io/IOException;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "create raf swap failed! path: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {p3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, " caused by: "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-direct {v1, v2, v0}, Ljava/io/IOException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
throw v1
.end method
# virtual methods
.method public a([BII)I
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v0, 0x0
.line 69
iget-object v1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v1
if-eqz v1, :cond_11
.line 70
new-instance v0, Ljava/io/IOException;
const-string v1, "released!"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 72
:cond_11
if-eqz p1, :cond_19
array-length v1, p1
if-eqz v1, :cond_19
const/4 v1, 0x1
if-ge p3, v1, :cond_1a
.line 93
:cond_19
:goto_19
return v0
.line 75
:cond_1a
if-ltz p2, :cond_19
array-length v1, p1
if-ge p2, v1, :cond_19
.line 78
add-int v1, p2, p3
array-length v2, p1
if-le v1, v2, :cond_27
.line 79
array-length v1, p1
sub-int p3, v1, p2
.line 82
:cond_27
monitor-enter p0
.line 83
:try_start_28
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
iget-wide v4, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
cmp-long v1, v2, v4
if-nez v1, :cond_35
.line 84
monitor-exit p0
goto :goto_19
.line 92
:catchall_32
move-exception v0
monitor-exit p0
:try_end_34
.catchall {:try_start_28 .. :try_end_34} :catchall_32
throw v0
.line 86
:cond_35
:try_start_35
iget-wide v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
int-to-long v2, p3
add-long/2addr v0, v2
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
cmp-long v0, v0, v2
if-lez v0, :cond_52
.line 87
iget-wide v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
sub-long/2addr v0, v2
long-to-int v0, v0
.line 89
:goto_45
iget-object v1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
invoke-virtual {v1, p1, p2, v0}, Ljava/io/RandomAccessFile;->write([BII)V
.line 90
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
int-to-long v4, v0
add-long/2addr v2, v4
iput-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
.line 92
monitor-exit p0
:try_end_51
.catchall {:try_start_35 .. :try_end_51} :catchall_32
goto :goto_19
:cond_52
move v0, p3
goto :goto_45
.end method
.method public declared-synchronized a(J)J
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 56
monitor-enter p0
:try_start_1
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
if-eqz v0, :cond_14
.line 57
new-instance v0, Ljava/io/IOException;
const-string v1, "released!"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_11
.catchall {:try_start_1 .. :try_end_11} :catchall_11
.line 56
:catchall_11
move-exception v0
monitor-exit p0
throw v0
.line 59
:cond_14
long-to-int v0, p1
int-to-long v0, v0
cmp-long v0, v0, p1
if-eqz v0, :cond_33
.line 60
:try_start_1a
new-instance v0, Ljava/io/IOException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "too large:"
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 62
:cond_33
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
long-to-int v1, p1
invoke-virtual {v0, v1}, Ljava/io/RandomAccessFile;->skipBytes(I)I
move-result v0
.line 63
iget-object v1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
invoke-virtual {v1}, Ljava/io/RandomAccessFile;->getFilePointer()J
move-result-wide v2
iput-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
:try_end_42
.catchall {:try_start_1a .. :try_end_42} :catchall_11
.line 64
int-to-long v0, v0
monitor-exit p0
return-wide v0
.end method
.method public a()V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 33
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
if-eqz v0, :cond_10
.line 34
new-instance v0, Ljava/io/IOException;
const-string v1, "released!"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 36
:cond_10
return-void
.end method
.method public a(I)V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 46
const/4 v0, 0x1
new-array v0, v0, [B
const/4 v1, 0x0
int-to-byte v2, p1
aput-byte v2, v0, v1
invoke-virtual {p0, v0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a([B)V
.line 47
return-void
.end method
.method public a([B)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 51
const/4 v0, 0x0
array-length v1, p1
invoke-virtual {p0, p1, v0, v1}, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a([BII)I
.line 52
return-void
.end method
.method public b([B)I
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 131
const/4 v0, 0x0
array-length v1, p1
invoke-virtual {p0, p1, v0, v1}, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b([BII)I
move-result v0
return v0
.end method
.method public b([BII)I
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v0, -0x1
.line 136
iget-object v1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v1
if-eqz v1, :cond_11
.line 137
new-instance v0, Ljava/io/IOException;
const-string v1, "released!"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 139
:cond_11
if-eqz p1, :cond_1b
const/4 v1, 0x1
if-lt p3, v1, :cond_1b
if-ltz p2, :cond_1b
array-length v1, p1
if-lt p2, v1, :cond_1d
.line 140
:cond_1b
const/4 v0, 0x0
.line 160
:goto_1c
return v0
.line 142
:cond_1d
add-int v1, p2, p3
array-length v2, p1
if-le v1, v2, :cond_25
.line 143
array-length v1, p1
sub-int p3, v1, p2
.line 146
:cond_25
monitor-enter p0
.line 147
:try_start_26
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
iget-wide v4, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
cmp-long v1, v2, v4
if-nez v1, :cond_33
.line 148
monitor-exit p0
goto :goto_1c
.line 161
:catchall_30
move-exception v0
monitor-exit p0
:try_end_32
.catchall {:try_start_26 .. :try_end_32} :catchall_30
throw v0
.line 150
:cond_33
:try_start_33
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
int-to-long v4, p3
add-long/2addr v2, v4
iget-wide v4, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
cmp-long v1, v2, v4
if-lez v1, :cond_43
.line 151
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
iget-wide v4, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
sub-long/2addr v2, v4
long-to-int p3, v2
.line 154
:cond_43
iget-object v1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
invoke-virtual {v1, p1, p2, p3}, Ljava/io/RandomAccessFile;->read([BII)I
move-result v1
.line 155
if-ne v1, v0, :cond_4d
.line 156
monitor-exit p0
goto :goto_1c
.line 158
:cond_4d
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
int-to-long v4, v1
add-long/2addr v2, v4
iput-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
.line 160
monitor-exit p0
:try_end_54
.catchall {:try_start_33 .. :try_end_54} :catchall_30
move v0, v1
goto :goto_1c
.end method
.method public b()J
.registers 3
.prologue
.line 41
iget-wide v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
return-wide v0
.end method
.method public b(J)V
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const-wide/16 v0, 0x0
.line 106
iget-object v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v2
if-eqz v2, :cond_12
.line 107
new-instance v0, Ljava/io/IOException;
const-string v1, "released!"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 109
:cond_12
cmp-long v2, p1, v0
if-gez v2, :cond_21
move-wide p1, v0
.line 114
:cond_17
:goto_17
iput-wide p1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
.line 115
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
iget-wide v2, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
invoke-virtual {v0, v2, v3}, Ljava/io/RandomAccessFile;->seek(J)V
.line 116
return-void
.line 111
:cond_21
iget-wide v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
cmp-long v0, p1, v0
if-lez v0, :cond_17
.line 112
iget-wide p1, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->a:J
goto :goto_17
.end method
.method public c()J
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 98
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicBoolean;->get()Z
move-result v0
if-eqz v0, :cond_10
.line 99
new-instance v0, Ljava/io/IOException;
const-string v1, "released!"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 101
:cond_10
iget-wide v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b:J
return-wide v0
.end method
.method public d()I
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 120
const/4 v0, 0x1
new-array v0, v0, [B
.line 121
invoke-virtual {p0, v0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->b([B)I
move-result v1
.line 122
if-nez v1, :cond_b
.line 123
const/4 v0, -0x1
.line 125
:goto_a
return v0
:cond_b
const/4 v1, 0x0
aget-byte v0, v0, v1
goto :goto_a
.end method
.method public e()V
.registers 3
.prologue
.line 167
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->d:Ljava/util/concurrent/atomic/AtomicBoolean;
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicBoolean;->getAndSet(Z)Z
move-result v0
if-eqz v0, :cond_a
.line 171
:goto_9
return-void
.line 170
:cond_a
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->c:Ljava/io/RandomAccessFile;
invoke-static {v0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/b;->a(Ljava/io/Closeable;)Z
goto :goto_9
.end method
.method public f()Ljava/io/File;
.registers 2
.prologue
.line 175
iget-object v0, p0, Lcom/bytedance/sdk/openadsdk/preload/geckox/buffer/impl/c;->e:Ljava/io/File;
return-object v0
.end method