cbt.smali
.class public Ldxoptimizer/cbt;
.super Ljava/lang/Object;
.source "ProcFileReader.java"
# interfaces
.implements Ljava/io/Closeable;
# instance fields
.field private final a:Ljava/io/InputStream;
.field private final b:[B
.field private c:I
.field private d:Z
# direct methods
.method public constructor <init>(Ljava/io/InputStream;)V
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 48
const/16 v0, 0x1000
invoke-direct {p0, p1, v0}, Ldxoptimizer/cbt;-><init>(Ljava/io/InputStream;I)V
.line 49
return-void
.end method
.method public constructor <init>(Ljava/io/InputStream;I)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 51
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 52
iput-object p1, p0, Ldxoptimizer/cbt;->a:Ljava/io/InputStream;
.line 53
new-array v0, p2, [B
iput-object v0, p0, Ldxoptimizer/cbt;->b:[B
.line 56
invoke-direct {p0}, Ldxoptimizer/cbt;->f()I
.line 57
return-void
.end method
.method private a(I)V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 82
iget-object v0, p0, Ldxoptimizer/cbt;->b:[B
iget-object v1, p0, Ldxoptimizer/cbt;->b:[B
const/4 v2, 0x0
iget v3, p0, Ldxoptimizer/cbt;->c:I
sub-int/2addr v3, p1
invoke-static {v0, p1, v1, v2, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 83
iget v0, p0, Ldxoptimizer/cbt;->c:I
sub-int/2addr v0, p1
iput v0, p0, Ldxoptimizer/cbt;->c:I
.line 84
iget v0, p0, Ldxoptimizer/cbt;->c:I
if-nez v0, :cond_17
.line 85
invoke-direct {p0}, Ldxoptimizer/cbt;->f()I
.line 87
:cond_17
return-void
.end method
.method private b(I)Ljava/lang/String;
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 188
new-instance v0, Ljava/lang/String;
iget-object v1, p0, Ldxoptimizer/cbt;->b:[B
const/4 v2, 0x0
const-string v3, "US-ASCII"
invoke-direct {v0, v1, v2, p1, v3}, Ljava/lang/String;-><init>([BIILjava/lang/String;)V
.line 189
add-int/lit8 v1, p1, 0x1
invoke-direct {p0, v1}, Ldxoptimizer/cbt;->a(I)V
.line 190
return-object v0
.end method
.method private c(I)J
.registers 13
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 194
iget-object v2, p0, Ldxoptimizer/cbt;->b:[B
aget-byte v2, v2, v1
const/16 v3, 0x2d
if-ne v2, v3, :cond_25
move v6, v0
.line 197
:goto_b
const-wide/16 v2, 0x0
.line 198
if-eqz v6, :cond_27
:goto_f
move v10, v0
move-wide v0, v2
move v2, v10
:goto_12
if-ge v2, p1, :cond_3c
.line 199
iget-object v3, p0, Ldxoptimizer/cbt;->b:[B
aget-byte v3, v3, v2
add-int/lit8 v3, v3, -0x30
.line 200
if-ltz v3, :cond_20
const/16 v4, 0x9
if-le v3, v4, :cond_29
.line 201
:cond_20
invoke-direct {p0, p1}, Ldxoptimizer/cbt;->d(I)Ljava/lang/NumberFormatException;
move-result-object v0
throw v0
:cond_25
move v6, v1
.line 194
goto :goto_b
:cond_27
move v0, v1
.line 198
goto :goto_f
.line 206
:cond_29
const-wide/16 v4, 0xa
mul-long/2addr v4, v0
int-to-long v8, v3
sub-long/2addr v4, v8
.line 207
cmp-long v0, v4, v0
if-lez v0, :cond_37
.line 208
invoke-direct {p0, p1}, Ldxoptimizer/cbt;->d(I)Ljava/lang/NumberFormatException;
move-result-object v0
throw v0
.line 198
:cond_37
add-int/lit8 v0, v2, 0x1
move v2, v0
move-wide v0, v4
goto :goto_12
.line 213
:cond_3c
add-int/lit8 v2, p1, 0x1
invoke-direct {p0, v2}, Ldxoptimizer/cbt;->a(I)V
.line 214
if-eqz v6, :cond_44
:goto_43
return-wide v0
:cond_44
neg-long v0, v0
goto :goto_43
.end method
.method private d(I)Ljava/lang/NumberFormatException;
.registers 8
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/UnsupportedEncodingException;
}
.end annotation
.prologue
.line 218
new-instance v0, Ljava/lang/NumberFormatException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "invalid long: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
new-instance v2, Ljava/lang/String;
iget-object v3, p0, Ldxoptimizer/cbt;->b:[B
const/4 v4, 0x0
const-string v5, "US-ASCII"
invoke-direct {v2, v3, v4, p1, v5}, Ljava/lang/String;-><init>([BIILjava/lang/String;)V
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)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/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
return-object v0
.end method
.method private f()I
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 63
iget-object v0, p0, Ldxoptimizer/cbt;->b:[B
array-length v0, v0
iget v1, p0, Ldxoptimizer/cbt;->c:I
sub-int/2addr v0, v1
.line 64
if-nez v0, :cond_10
.line 65
new-instance v0, Ljava/io/IOException;
const-string v1, "attempting to fill already-full buffer"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v0
.line 68
:cond_10
iget-object v1, p0, Ldxoptimizer/cbt;->a:Ljava/io/InputStream;
iget-object v2, p0, Ldxoptimizer/cbt;->b:[B
iget v3, p0, Ldxoptimizer/cbt;->c:I
invoke-virtual {v1, v2, v3, v0}, Ljava/io/InputStream;->read([BII)I
move-result v0
.line 69
const/4 v1, -0x1
if-eq v0, v1, :cond_22
.line 70
iget v1, p0, Ldxoptimizer/cbt;->c:I
add-int/2addr v1, v0
iput v1, p0, Ldxoptimizer/cbt;->c:I
.line 72
:cond_22
return v0
.end method
.method private g()I
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 97
iget-boolean v0, p0, Ldxoptimizer/cbt;->d:Z
if-eqz v0, :cond_6
.line 98
const/4 v0, -0x1
.line 111
:cond_5
:goto_5
return v0
.line 101
:cond_6
const/4 v0, 0x0
.line 104
:cond_7
:goto_7
iget v1, p0, Ldxoptimizer/cbt;->c:I
if-ge v0, v1, :cond_1e
.line 105
iget-object v1, p0, Ldxoptimizer/cbt;->b:[B
aget-byte v1, v1, v0
.line 106
const/16 v2, 0xa
if-ne v1, v2, :cond_17
.line 107
const/4 v1, 0x1
iput-boolean v1, p0, Ldxoptimizer/cbt;->d:Z
goto :goto_5
.line 110
:cond_17
const/16 v2, 0x20
if-eq v1, v2, :cond_5
.line 104
add-int/lit8 v0, v0, 0x1
goto :goto_7
.line 114
:cond_1e
invoke-direct {p0}, Ldxoptimizer/cbt;->f()I
move-result v1
if-gtz v1, :cond_7
.line 116
new-instance v0, Ljava/net/ProtocolException;
const-string v1, "End of stream while looking for token boundary"
invoke-direct {v0, v1}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.end method
# virtual methods
.method public a()Z
.registers 2
.prologue
.line 123
iget v0, p0, Ldxoptimizer/cbt;->c:I
if-lez v0, :cond_6
const/4 v0, 0x1
:goto_5
return v0
:cond_6
const/4 v0, 0x0
goto :goto_5
.end method
.method public b()V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
const/4 v0, 0x0
.line 131
iget-boolean v1, p0, Ldxoptimizer/cbt;->d:Z
if-eqz v1, :cond_a
.line 132
iput-boolean v0, p0, Ldxoptimizer/cbt;->d:Z
.line 142
:goto_7
return-void
.line 139
:cond_8
add-int/lit8 v0, v0, 0x1
:cond_a
iget v1, p0, Ldxoptimizer/cbt;->c:I
if-ge v0, v1, :cond_1c
.line 140
iget-object v1, p0, Ldxoptimizer/cbt;->b:[B
aget-byte v1, v1, v0
const/16 v2, 0xa
if-ne v1, v2, :cond_8
.line 141
add-int/lit8 v0, v0, 0x1
invoke-direct {p0, v0}, Ldxoptimizer/cbt;->a(I)V
goto :goto_7
.line 145
:cond_1c
invoke-direct {p0}, Ldxoptimizer/cbt;->f()I
move-result v1
if-gtz v1, :cond_a
.line 147
new-instance v0, Ljava/net/ProtocolException;
const-string v1, "End of stream while looking for line boundary"
invoke-direct {v0, v1}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public c()Ljava/lang/String;
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 154
invoke-direct {p0}, Ldxoptimizer/cbt;->g()I
move-result v0
.line 155
const/4 v1, -0x1
if-ne v0, v1, :cond_f
.line 156
new-instance v0, Ljava/net/ProtocolException;
const-string v1, "Missing required string"
invoke-direct {v0, v1}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.line 158
:cond_f
invoke-direct {p0, v0}, Ldxoptimizer/cbt;->b(I)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public close()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 235
iget-object v0, p0, Ldxoptimizer/cbt;->a:Ljava/io/InputStream;
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
.line 236
return-void
.end method
.method public d()J
.registers 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 166
invoke-direct {p0}, Ldxoptimizer/cbt;->g()I
move-result v0
.line 167
const/4 v1, -0x1
if-ne v0, v1, :cond_f
.line 168
new-instance v0, Ljava/net/ProtocolException;
const-string v1, "Missing required long"
invoke-direct {v0, v1}, Ljava/net/ProtocolException;-><init>(Ljava/lang/String;)V
throw v0
.line 170
:cond_f
invoke-direct {p0, v0}, Ldxoptimizer/cbt;->c(I)J
move-result-wide v0
return-wide v0
.end method
.method public e()I
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.prologue
.line 226
invoke-virtual {p0}, Ldxoptimizer/cbt;->d()J
move-result-wide v0
.line 227
const-wide/32 v2, 0x7fffffff
cmp-long v2, v0, v2
if-gtz v2, :cond_12
const-wide/32 v2, -0x80000000
cmp-long v2, v0, v2
if-gez v2, :cond_1a
.line 228
:cond_12
new-instance v0, Ljava/lang/NumberFormatException;
const-string v1, "parsed value larger than integer"
invoke-direct {v0, v1}, Ljava/lang/NumberFormatException;-><init>(Ljava/lang/String;)V
throw v0
.line 230
:cond_1a
long-to-int v0, v0
return v0
.end method