Files.smali
.class public Lcom/facebook/common/internal/Files;
.super Ljava/lang/Object;
.source "Files.java"
# direct methods
.method private constructor <init>()V
.registers 1
.line 36
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static readFile(Ljava/io/InputStream;J)[B
.registers 5
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0,
0x0
}
names = {
"in",
"expectedSize"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const-wide/32 v0, 0x7fffffff
cmp-long v0, p1, v0
if-gtz v0, :cond_18
const-wide/16 v0, 0x0
cmp-long v0, p1, v0
if-nez v0, :cond_12
.line 52
invoke-static {p0}, Lcom/facebook/common/internal/ByteStreams;->toByteArray(Ljava/io/InputStream;)[B
move-result-object p0
goto :goto_17
:cond_12
long-to-int p1, p1
.line 53
invoke-static {p0, p1}, Lcom/facebook/common/internal/ByteStreams;->toByteArray(Ljava/io/InputStream;I)[B
move-result-object p0
:goto_17
return-object p0
.line 45
:cond_18
new-instance p0, Ljava/lang/OutOfMemoryError;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "file is too large to fit in a byte array: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string p1, " bytes"
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p0, p1}, Ljava/lang/OutOfMemoryError;-><init>(Ljava/lang/String;)V
throw p0
.end method
.method public static toByteArray(Ljava/io/File;)[B
.registers 5
.annotation system Ldalvik/annotation/MethodParameters;
accessFlags = {
0x0
}
names = {
"file"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/4 v0, 0x0
.line 67
:try_start_1
new-instance v1, Ljava/io/FileInputStream;
invoke-direct {v1, p0}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
:try_end_6
.catchall {:try_start_1 .. :try_end_6} :catchall_19
.line 68
:try_start_6
invoke-virtual {v1}, Ljava/io/FileInputStream;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object p0
invoke-virtual {p0}, Ljava/nio/channels/FileChannel;->size()J
move-result-wide v2
invoke-static {v1, v2, v3}, Lcom/facebook/common/internal/Files;->readFile(Ljava/io/InputStream;J)[B
move-result-object p0
:try_end_12
.catchall {:try_start_6 .. :try_end_12} :catchall_16
.line 71
invoke-virtual {v1}, Ljava/io/FileInputStream;->close()V
return-object p0
:catchall_16
move-exception p0
move-object v0, v1
goto :goto_1a
:catchall_19
move-exception p0
:goto_1a
if-eqz v0, :cond_1f
invoke-virtual {v0}, Ljava/io/FileInputStream;->close()V
.line 73
:cond_1f
throw p0
.end method