Weather/smali/com/google/protobuf/CodedInputStream.smali
2021-05-10 10:13:34 +02:00

2301 lines
50 KiB
Smali

.class public final Lcom/google/protobuf/CodedInputStream;
.super Ljava/lang/Object;
.source "CodedInputStream.java"
# static fields
.field private static final BUFFER_SIZE:I = 0x1000
.field private static final DEFAULT_RECURSION_LIMIT:I = 0x40
.field private static final DEFAULT_SIZE_LIMIT:I = 0x4000000
# instance fields
.field private final buffer:[B
.field private bufferPos:I
.field private bufferSize:I
.field private bufferSizeAfterLimit:I
.field private currentLimit:I
.field private final input:Ljava/io/InputStream;
.field private lastTag:I
.field private recursionDepth:I
.field private recursionLimit:I
.field private sizeLimit:I
.field private totalBytesRetired:I
# direct methods
.method private constructor <init>(Ljava/io/InputStream;)V
.locals 1
.line 537
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const v0, 0x7fffffff
.line 516
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
const/16 v0, 0x40
.line 520
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->recursionLimit:I
const/high16 v0, 0x4000000
.line 523
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->sizeLimit:I
const/16 v0, 0x1000
.line 538
new-array v0, v0, [B
iput-object v0, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
const/4 v0, 0x0
.line 539
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
.line 540
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
.line 541
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
.line 542
iput-object p1, p0, Lcom/google/protobuf/CodedInputStream;->input:Ljava/io/InputStream;
return-void
.end method
.method private constructor <init>([BII)V
.locals 1
.line 529
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
const v0, 0x7fffffff
.line 516
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
const/16 v0, 0x40
.line 520
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->recursionLimit:I
const/high16 v0, 0x4000000
.line 523
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->sizeLimit:I
.line 530
iput-object p1, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
add-int/2addr p3, p2
.line 531
iput p3, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
.line 532
iput p2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
neg-int p1, p2
.line 533
iput p1, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
const/4 p1, 0x0
.line 534
iput-object p1, p0, Lcom/google/protobuf/CodedInputStream;->input:Ljava/io/InputStream;
return-void
.end method
.method public static decodeZigZag32(I)I
.locals 1
ushr-int/lit8 v0, p0, 0x1
and-int/lit8 p0, p0, 0x1
neg-int p0, p0
xor-int/2addr p0, v0
return p0
.end method
.method public static decodeZigZag64(J)J
.locals 4
const/4 v0, 0x1
ushr-long v0, p0, v0
const-wide/16 v2, 0x1
and-long/2addr p0, v2
neg-long p0, p0
xor-long/2addr p0, v0
return-wide p0
.end method
.method public static newInstance(Ljava/io/InputStream;)Lcom/google/protobuf/CodedInputStream;
.locals 1
.line 55
new-instance v0, Lcom/google/protobuf/CodedInputStream;
invoke-direct {v0, p0}, Lcom/google/protobuf/CodedInputStream;-><init>(Ljava/io/InputStream;)V
return-object v0
.end method
.method public static newInstance([B)Lcom/google/protobuf/CodedInputStream;
.locals 2
.line 62
array-length v0, p0
const/4 v1, 0x0
invoke-static {p0, v1, v0}, Lcom/google/protobuf/CodedInputStream;->newInstance([BII)Lcom/google/protobuf/CodedInputStream;
move-result-object p0
return-object p0
.end method
.method public static newInstance([BII)Lcom/google/protobuf/CodedInputStream;
.locals 1
.line 70
new-instance v0, Lcom/google/protobuf/CodedInputStream;
invoke-direct {v0, p0, p1, p2}, Lcom/google/protobuf/CodedInputStream;-><init>([BII)V
.line 77
:try_start_0
invoke-virtual {v0, p2}, Lcom/google/protobuf/CodedInputStream;->pushLimit(I)I
:try_end_0
.catch Lcom/google/protobuf/InvalidProtocolBufferException; {:try_start_0 .. :try_end_0} :catch_0
return-object v0
:catch_0
move-exception p0
.line 86
new-instance p1, Ljava/lang/IllegalArgumentException;
invoke-direct {p1, p0}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/Throwable;)V
throw p1
.end method
.method public static readRawVarint32(ILjava/io/InputStream;)I
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
and-int/lit16 v0, p0, 0x80
if-nez v0, :cond_0
return p0
:cond_0
and-int/lit8 p0, p0, 0x7f
const/4 v0, 0x7
:goto_0
const/16 v1, 0x20
const/4 v2, -0x1
if-ge v0, v1, :cond_3
.line 400
invoke-virtual {p1}, Ljava/io/InputStream;->read()I
move-result v1
if-eq v1, v2, :cond_2
and-int/lit8 v2, v1, 0x7f
shl-int/2addr v2, v0
or-int/2addr p0, v2
and-int/lit16 v1, v1, 0x80
if-nez v1, :cond_1
return p0
:cond_1
add-int/lit8 v0, v0, 0x7
goto :goto_0
.line 402
:cond_2
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p0
throw p0
:cond_3
:goto_1
const/16 v1, 0x40
if-ge v0, v1, :cond_6
.line 411
invoke-virtual {p1}, Ljava/io/InputStream;->read()I
move-result v1
if-eq v1, v2, :cond_5
and-int/lit16 v1, v1, 0x80
if-nez v1, :cond_4
return p0
:cond_4
add-int/lit8 v0, v0, 0x7
goto :goto_1
.line 413
:cond_5
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p0
throw p0
.line 419
:cond_6
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->malformedVarint()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p0
throw p0
.end method
.method static readRawVarint32(Ljava/io/InputStream;)I
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 379
invoke-virtual {p0}, Ljava/io/InputStream;->read()I
move-result v0
const/4 v1, -0x1
if-eq v0, v1, :cond_0
.line 383
invoke-static {v0, p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32(ILjava/io/InputStream;)I
move-result p0
return p0
.line 381
:cond_0
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p0
throw p0
.end method
.method private recomputeBufferSizeAfterLimit()V
.locals 2
.line 626
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSizeAfterLimit:I
add-int/2addr v0, v1
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
.line 627
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
add-int/2addr v0, v1
.line 628
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
if-le v0, v1, :cond_0
.line 630
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
sub-int/2addr v0, v1
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSizeAfterLimit:I
.line 631
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSizeAfterLimit:I
sub-int/2addr v0, v1
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
goto :goto_0
:cond_0
const/4 v0, 0x0
.line 633
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSizeAfterLimit:I
:goto_0
return-void
.end method
.method private refillBuffer(Z)Z
.locals 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 685
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
if-lt v0, v1, :cond_7
.line 690
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
add-int/2addr v0, v1
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
const/4 v2, 0x0
if-ne v0, v1, :cond_1
if-nez p1, :cond_0
return v2
.line 693
:cond_0
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.line 699
:cond_1
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
add-int/2addr v0, v1
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
.line 701
iput v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
.line 702
iget-object v0, p0, Lcom/google/protobuf/CodedInputStream;->input:Ljava/io/InputStream;
const/4 v1, -0x1
if-nez v0, :cond_2
const/4 v0, -0x1
goto :goto_0
:cond_2
iget-object v0, p0, Lcom/google/protobuf/CodedInputStream;->input:Ljava/io/InputStream;
iget-object v3, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
invoke-virtual {v0, v3}, Ljava/io/InputStream;->read([B)I
move-result v0
:goto_0
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
.line 703
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
if-eqz v0, :cond_6
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
if-lt v0, v1, :cond_6
.line 708
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
if-ne v0, v1, :cond_4
.line 709
iput v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
if-nez p1, :cond_3
return v2
.line 711
:cond_3
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.line 716
:cond_4
invoke-direct {p0}, Lcom/google/protobuf/CodedInputStream;->recomputeBufferSizeAfterLimit()V
.line 717
iget p1, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
add-int/2addr p1, v0
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSizeAfterLimit:I
add-int/2addr p1, v0
.line 719
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->sizeLimit:I
if-gt p1, v0, :cond_5
if-ltz p1, :cond_5
const/4 p1, 0x1
return p1
.line 720
:cond_5
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->sizeLimitExceeded()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.line 704
:cond_6
new-instance p1, Ljava/lang/IllegalStateException;
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "InputStream#read(byte[]) returned invalid result: "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, "\nThe InputStream implementation is buggy."
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.line 686
:cond_7
new-instance p1, Ljava/lang/IllegalStateException;
const-string v0, "refillBuffer() called when buffer wasn\'t empty."
invoke-direct {p1, v0}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
.end method
# virtual methods
.method public checkLastTagWas(I)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/protobuf/InvalidProtocolBufferException;
}
.end annotation
.line 123
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->lastTag:I
if-ne v0, p1, :cond_0
return-void
.line 124
:cond_0
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->invalidEndTag()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.end method
.method public getBytesUntilLimit()I
.locals 2
.line 652
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
const v1, 0x7fffffff
if-ne v0, v1, :cond_0
const/4 v0, -0x1
return v0
.line 656
:cond_0
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v0, v1
.line 657
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
sub-int/2addr v1, v0
return v1
.end method
.method public getTotalBytesRead()I
.locals 2
.line 674
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v0, v1
return v0
.end method
.method public isAtEnd()Z
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 666
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
const/4 v2, 0x0
if-ne v0, v1, :cond_0
invoke-direct {p0, v2}, Lcom/google/protobuf/CodedInputStream;->refillBuffer(Z)Z
move-result v0
if-nez v0, :cond_0
const/4 v2, 0x1
:cond_0
return v2
.end method
.method public popLimit(I)V
.locals 0
.line 643
iput p1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
.line 644
invoke-direct {p0}, Lcom/google/protobuf/CodedInputStream;->recomputeBufferSizeAfterLimit()V
return-void
.end method
.method public pushLimit(I)I
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/protobuf/InvalidProtocolBufferException;
}
.end annotation
if-ltz p1, :cond_1
.line 613
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v0, v1
add-int/2addr p1, v0
.line 614
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
if-gt p1, v0, :cond_0
.line 618
iput p1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
.line 620
invoke-direct {p0}, Lcom/google/protobuf/CodedInputStream;->recomputeBufferSizeAfterLimit()V
return v0
.line 616
:cond_0
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.line 611
:cond_1
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->negativeSize()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.end method
.method public readBool()Z
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 213
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x1
goto :goto_0
:cond_0
const/4 v0, 0x0
:goto_0
return v0
.end method
.method public readBytes()Lcom/google/protobuf/ByteString;
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 283
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
if-nez v0, :cond_0
.line 285
sget-object v0, Lcom/google/protobuf/ByteString;->EMPTY:Lcom/google/protobuf/ByteString;
return-object v0
.line 286
:cond_0
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
sub-int/2addr v1, v2
if-gt v0, v1, :cond_1
if-lez v0, :cond_1
.line 289
iget-object v1, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
invoke-static {v1, v2, v0}, Lcom/google/protobuf/ByteString;->copyFrom([BII)Lcom/google/protobuf/ByteString;
move-result-object v1
.line 290
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v2, v0
iput v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
return-object v1
.line 294
:cond_1
invoke-virtual {p0, v0}, Lcom/google/protobuf/CodedInputStream;->readRawBytes(I)[B
move-result-object v0
invoke-static {v0}, Lcom/google/protobuf/ByteString;->copyFrom([B)Lcom/google/protobuf/ByteString;
move-result-object v0
return-object v0
.end method
.method public readDouble()D
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 178
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawLittleEndian64()J
move-result-wide v0
invoke-static {v0, v1}, Ljava/lang/Double;->longBitsToDouble(J)D
move-result-wide v0
return-wide v0
.end method
.method public readEnum()I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 308
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
return v0
.end method
.method public readFixed32()I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 208
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawLittleEndian32()I
move-result v0
return v0
.end method
.method public readFixed64()J
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 203
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawLittleEndian64()J
move-result-wide v0
return-wide v0
.end method
.method public readFloat()F
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 183
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawLittleEndian32()I
move-result v0
invoke-static {v0}, Ljava/lang/Float;->intBitsToFloat(I)F
move-result v0
return v0
.end method
.method public readGroup(ILcom/google/protobuf/MessageLite$Builder;Lcom/google/protobuf/ExtensionRegistryLite;)V
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 236
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->recursionLimit:I
if-ge v0, v1, :cond_0
.line 239
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
.line 240
invoke-interface {p2, p0, p3}, Lcom/google/protobuf/MessageLite$Builder;->mergeFrom(Lcom/google/protobuf/CodedInputStream;Lcom/google/protobuf/ExtensionRegistryLite;)Lcom/google/protobuf/MessageLite$Builder;
const/4 p2, 0x4
.line 241
invoke-static {p1, p2}, Lcom/google/protobuf/WireFormat;->makeTag(II)I
move-result p1
invoke-virtual {p0, p1}, Lcom/google/protobuf/CodedInputStream;->checkLastTagWas(I)V
.line 243
iget p1, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
add-int/lit8 p1, p1, -0x1
iput p1, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
return-void
.line 237
:cond_0
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->recursionLimitExceeded()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.end method
.method public readInt32()I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 198
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
return v0
.end method
.method public readInt64()J
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 193
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint64()J
move-result-wide v0
return-wide v0
.end method
.method public readMessage(Lcom/google/protobuf/MessageLite$Builder;Lcom/google/protobuf/ExtensionRegistryLite;)V
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 269
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
.line 270
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->recursionLimit:I
if-ge v1, v2, :cond_0
.line 273
invoke-virtual {p0, v0}, Lcom/google/protobuf/CodedInputStream;->pushLimit(I)I
move-result v0
.line 274
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
add-int/lit8 v1, v1, 0x1
iput v1, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
.line 275
invoke-interface {p1, p0, p2}, Lcom/google/protobuf/MessageLite$Builder;->mergeFrom(Lcom/google/protobuf/CodedInputStream;Lcom/google/protobuf/ExtensionRegistryLite;)Lcom/google/protobuf/MessageLite$Builder;
const/4 p1, 0x0
.line 276
invoke-virtual {p0, p1}, Lcom/google/protobuf/CodedInputStream;->checkLastTagWas(I)V
.line 277
iget p1, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
add-int/lit8 p1, p1, -0x1
iput p1, p0, Lcom/google/protobuf/CodedInputStream;->recursionDepth:I
.line 278
invoke-virtual {p0, v0}, Lcom/google/protobuf/CodedInputStream;->popLimit(I)V
return-void
.line 271
:cond_0
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->recursionLimitExceeded()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.end method
.method public readRawByte()B
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 733
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
if-ne v0, v1, :cond_0
const/4 v0, 0x1
.line 734
invoke-direct {p0, v0}, Lcom/google/protobuf/CodedInputStream;->refillBuffer(Z)Z
.line 736
:cond_0
iget-object v0, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/lit8 v2, v1, 0x1
iput v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
aget-byte v0, v0, v1
return v0
.end method
.method public readRawBytes(I)[B
.locals 11
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
if-ltz p1, :cond_9
.line 750
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v0, v1
add-int/2addr v0, p1
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
if-gt v0, v1, :cond_8
.line 757
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
sub-int/2addr v0, v1
const/4 v1, 0x0
if-gt p1, v0, :cond_0
.line 759
new-array v0, p1, [B
.line 760
iget-object v2, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
iget v3, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
invoke-static {v2, v3, v0, v1, p1}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 761
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v1, p1
iput v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
return-object v0
:cond_0
const/16 v0, 0x1000
if-ge p1, v0, :cond_2
.line 768
new-array v0, p1, [B
.line 769
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iget v3, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
sub-int/2addr v2, v3
.line 770
iget-object v3, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
iget v4, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
invoke-static {v3, v4, v0, v1, v2}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 771
iget v3, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iput v3, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
const/4 v3, 0x1
.line 776
invoke-direct {p0, v3}, Lcom/google/protobuf/CodedInputStream;->refillBuffer(Z)Z
:goto_0
sub-int v4, p1, v2
.line 778
iget v5, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
if-le v4, v5, :cond_1
.line 779
iget-object v4, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
iget v5, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
invoke-static {v4, v1, v0, v2, v5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 780
iget v4, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
add-int/2addr v2, v4
.line 781
iget v4, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iput v4, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
.line 782
invoke-direct {p0, v3}, Lcom/google/protobuf/CodedInputStream;->refillBuffer(Z)Z
goto :goto_0
.line 785
:cond_1
iget-object p1, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
invoke-static {p1, v1, v0, v2, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 786
iput v4, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
return-object v0
.line 800
:cond_2
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
.line 801
iget v3, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
.line 804
iget v4, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v5, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
add-int/2addr v4, v5
iput v4, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
.line 805
iput v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
.line 806
iput v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
sub-int/2addr v3, v2
sub-int v4, p1, v3
.line 810
new-instance v5, Ljava/util/ArrayList;
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
:goto_1
if-lez v4, :cond_6
.line 813
invoke-static {v4, v0}, Ljava/lang/Math;->min(II)I
move-result v6
new-array v6, v6, [B
const/4 v7, 0x0
.line 815
:goto_2
array-length v8, v6
if-ge v7, v8, :cond_5
.line 816
iget-object v8, p0, Lcom/google/protobuf/CodedInputStream;->input:Ljava/io/InputStream;
const/4 v9, -0x1
if-nez v8, :cond_3
const/4 v8, -0x1
goto :goto_3
:cond_3
iget-object v8, p0, Lcom/google/protobuf/CodedInputStream;->input:Ljava/io/InputStream;
array-length v10, v6
sub-int/2addr v10, v7
invoke-virtual {v8, v6, v7, v10}, Ljava/io/InputStream;->read([BII)I
move-result v8
:goto_3
if-eq v8, v9, :cond_4
.line 821
iget v9, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
add-int/2addr v9, v8
iput v9, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
add-int/2addr v7, v8
goto :goto_2
.line 819
:cond_4
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.line 824
:cond_5
array-length v7, v6
sub-int/2addr v4, v7
.line 825
invoke-interface {v5, v6}, Ljava/util/List;->add(Ljava/lang/Object;)Z
goto :goto_1
.line 829
:cond_6
new-array p1, p1, [B
.line 833
iget-object v0, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
invoke-static {v0, v2, p1, v1, v3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 836
invoke-interface {v5}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:goto_4
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v2
if-eqz v2, :cond_7
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v2
check-cast v2, [B
.line 837
array-length v4, v2
invoke-static {v2, v1, p1, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
.line 838
array-length v2, v2
add-int/2addr v3, v2
goto :goto_4
:cond_7
return-object p1
.line 752
:cond_8
iget p1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
sub-int/2addr p1, v0
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
sub-int/2addr p1, v0
invoke-virtual {p0, p1}, Lcom/google/protobuf/CodedInputStream;->skipRawBytes(I)V
.line 754
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.line 747
:cond_9
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->negativeSize()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.end method
.method public readRawLittleEndian32()I
.locals 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 439
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v0
.line 440
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v1
.line 441
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v2
.line 442
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v3
and-int/lit16 v0, v0, 0xff
and-int/lit16 v1, v1, 0xff
shl-int/lit8 v1, v1, 0x8
or-int/2addr v0, v1
and-int/lit16 v1, v2, 0xff
shl-int/lit8 v1, v1, 0x10
or-int/2addr v0, v1
and-int/lit16 v1, v3, 0xff
shl-int/lit8 v1, v1, 0x18
or-int/2addr v0, v1
return v0
.end method
.method public readRawLittleEndian64()J
.locals 13
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 451
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v0
.line 452
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v1
.line 453
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v2
.line 454
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v3
.line 455
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v4
.line 456
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v5
.line 457
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v6
.line 458
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v7
int-to-long v8, v0
const-wide/16 v10, 0xff
and-long/2addr v8, v10
int-to-long v0, v1
and-long/2addr v0, v10
const/16 v12, 0x8
shl-long/2addr v0, v12
or-long/2addr v0, v8
int-to-long v8, v2
and-long/2addr v8, v10
const/16 v2, 0x10
shl-long/2addr v8, v2
or-long/2addr v0, v8
int-to-long v2, v3
and-long/2addr v2, v10
const/16 v8, 0x18
shl-long/2addr v2, v8
or-long/2addr v0, v2
int-to-long v2, v4
and-long/2addr v2, v10
const/16 v4, 0x20
shl-long/2addr v2, v4
or-long/2addr v0, v2
int-to-long v2, v5
and-long/2addr v2, v10
const/16 v4, 0x28
shl-long/2addr v2, v4
or-long/2addr v0, v2
int-to-long v2, v6
and-long/2addr v2, v10
const/16 v4, 0x30
shl-long/2addr v2, v4
or-long/2addr v0, v2
int-to-long v2, v7
and-long/2addr v2, v10
const/16 v4, 0x38
shl-long/2addr v2, v4
or-long/2addr v0, v2
return-wide v0
.end method
.method public readRawVarint32()I
.locals 3
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 338
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v0
if-ltz v0, :cond_0
return v0
:cond_0
and-int/lit8 v0, v0, 0x7f
.line 343
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v1
if-ltz v1, :cond_1
shl-int/lit8 v1, v1, 0x7
or-int/2addr v0, v1
goto :goto_1
:cond_1
and-int/lit8 v1, v1, 0x7f
shl-int/lit8 v1, v1, 0x7
or-int/2addr v0, v1
.line 347
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v1
if-ltz v1, :cond_2
shl-int/lit8 v1, v1, 0xe
or-int/2addr v0, v1
goto :goto_1
:cond_2
and-int/lit8 v1, v1, 0x7f
shl-int/lit8 v1, v1, 0xe
or-int/2addr v0, v1
.line 351
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v1
if-ltz v1, :cond_3
shl-int/lit8 v1, v1, 0x15
or-int/2addr v0, v1
goto :goto_1
:cond_3
and-int/lit8 v1, v1, 0x7f
shl-int/lit8 v1, v1, 0x15
or-int/2addr v0, v1
.line 355
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v1
shl-int/lit8 v2, v1, 0x1c
or-int/2addr v0, v2
if-gez v1, :cond_6
const/4 v1, 0x0
:goto_0
const/4 v2, 0x5
if-ge v1, v2, :cond_5
.line 359
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v2
if-ltz v2, :cond_4
return v0
:cond_4
add-int/lit8 v1, v1, 0x1
goto :goto_0
.line 363
:cond_5
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->malformedVarint()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object v0
throw v0
:cond_6
:goto_1
return v0
.end method
.method public readRawVarint64()J
.locals 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
const/4 v0, 0x0
const-wide/16 v1, 0x0
:goto_0
const/16 v3, 0x40
if-ge v0, v3, :cond_1
.line 427
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawByte()B
move-result v3
and-int/lit8 v4, v3, 0x7f
int-to-long v4, v4
shl-long/2addr v4, v0
or-long/2addr v1, v4
and-int/lit16 v3, v3, 0x80
if-nez v3, :cond_0
return-wide v1
:cond_0
add-int/lit8 v0, v0, 0x7
goto :goto_0
.line 434
:cond_1
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->malformedVarint()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object v0
throw v0
.end method
.method public readSFixed32()I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 313
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawLittleEndian32()I
move-result v0
return v0
.end method
.method public readSFixed64()J
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 318
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawLittleEndian64()J
move-result-wide v0
return-wide v0
.end method
.method public readSInt32()I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 323
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
invoke-static {v0}, Lcom/google/protobuf/CodedInputStream;->decodeZigZag32(I)I
move-result v0
return v0
.end method
.method public readSInt64()J
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 328
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint64()J
move-result-wide v0
invoke-static {v0, v1}, Lcom/google/protobuf/CodedInputStream;->decodeZigZag64(J)J
move-result-wide v0
return-wide v0
.end method
.method public readString()Ljava/lang/String;
.locals 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 218
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
.line 219
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
sub-int/2addr v1, v2
if-gt v0, v1, :cond_0
if-lez v0, :cond_0
.line 222
new-instance v1, Ljava/lang/String;
iget-object v2, p0, Lcom/google/protobuf/CodedInputStream;->buffer:[B
iget v3, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
const-string v4, "UTF-8"
invoke-direct {v1, v2, v3, v0, v4}, Ljava/lang/String;-><init>([BIILjava/lang/String;)V
.line 223
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v2, v0
iput v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
return-object v1
.line 227
:cond_0
new-instance v1, Ljava/lang/String;
invoke-virtual {p0, v0}, Lcom/google/protobuf/CodedInputStream;->readRawBytes(I)[B
move-result-object v0
const-string v2, "UTF-8"
invoke-direct {v1, v0, v2}, Ljava/lang/String;-><init>([BLjava/lang/String;)V
return-object v1
.end method
.method public readTag()I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 99
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->isAtEnd()Z
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x0
.line 100
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->lastTag:I
return v0
.line 104
:cond_0
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->lastTag:I
.line 105
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->lastTag:I
invoke-static {v0}, Lcom/google/protobuf/WireFormat;->getTagFieldNumber(I)I
move-result v0
if-eqz v0, :cond_1
.line 110
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->lastTag:I
return v0
.line 108
:cond_1
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->invalidTag()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object v0
throw v0
.end method
.method public readUInt32()I
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 300
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result v0
return v0
.end method
.method public readUInt64()J
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 188
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint64()J
move-result-wide v0
return-wide v0
.end method
.method public readUnknownGroup(ILcom/google/protobuf/MessageLite$Builder;)V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
const/4 v0, 0x0
.line 262
invoke-virtual {p0, p1, p2, v0}, Lcom/google/protobuf/CodedInputStream;->readGroup(ILcom/google/protobuf/MessageLite$Builder;Lcom/google/protobuf/ExtensionRegistryLite;)V
return-void
.end method
.method public resetSizeCounter()V
.locals 1
.line 592
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
neg-int v0, v0
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
return-void
.end method
.method public setRecursionLimit(I)I
.locals 3
if-ltz p1, :cond_0
.line 557
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->recursionLimit:I
.line 558
iput p1, p0, Lcom/google/protobuf/CodedInputStream;->recursionLimit:I
return v0
.line 554
:cond_0
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Recursion limit cannot be negative: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public setSizeLimit(I)I
.locals 3
if-ltz p1, :cond_0
.line 583
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->sizeLimit:I
.line 584
iput p1, p0, Lcom/google/protobuf/CodedInputStream;->sizeLimit:I
return v0
.line 580
:cond_0
new-instance v0, Ljava/lang/IllegalArgumentException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Size limit cannot be negative: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method public skipField(I)Z
.locals 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 135
invoke-static {p1}, Lcom/google/protobuf/WireFormat;->getTagWireType(I)I
move-result v0
const/4 v1, 0x1
packed-switch v0, :pswitch_data_0
.line 157
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->invalidWireType()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.line 154
:pswitch_0
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawLittleEndian32()I
return v1
:pswitch_1
const/4 p1, 0x0
return p1
.line 146
:pswitch_2
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->skipMessage()V
.line 147
invoke-static {p1}, Lcom/google/protobuf/WireFormat;->getTagFieldNumber(I)I
move-result p1
const/4 v0, 0x4
invoke-static {p1, v0}, Lcom/google/protobuf/WireFormat;->makeTag(II)I
move-result p1
invoke-virtual {p0, p1}, Lcom/google/protobuf/CodedInputStream;->checkLastTagWas(I)V
return v1
.line 143
:pswitch_3
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawVarint32()I
move-result p1
invoke-virtual {p0, p1}, Lcom/google/protobuf/CodedInputStream;->skipRawBytes(I)V
return v1
.line 140
:pswitch_4
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readRawLittleEndian64()J
return v1
.line 137
:pswitch_5
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readInt32()I
return v1
nop
:pswitch_data_0
.packed-switch 0x0
:pswitch_5
:pswitch_4
:pswitch_3
:pswitch_2
:pswitch_1
:pswitch_0
.end packed-switch
.end method
.method public skipMessage()V
.locals 1
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 167
:cond_0
invoke-virtual {p0}, Lcom/google/protobuf/CodedInputStream;->readTag()I
move-result v0
if-eqz v0, :cond_1
.line 168
invoke-virtual {p0, v0}, Lcom/google/protobuf/CodedInputStream;->skipField(I)Z
move-result v0
if-nez v0, :cond_0
:cond_1
return-void
.end method
.method public skipRawBytes(I)V
.locals 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
if-ltz p1, :cond_3
.line 857
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v0, v1
add-int/2addr v0, p1
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
if-gt v0, v1, :cond_2
.line 864
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
sub-int/2addr v0, v1
if-gt p1, v0, :cond_0
.line 866
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
add-int/2addr v0, p1
iput v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
goto :goto_1
.line 869
:cond_0
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
sub-int/2addr v0, v1
.line 870
iget v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iput v1, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
const/4 v1, 0x1
.line 875
invoke-direct {p0, v1}, Lcom/google/protobuf/CodedInputStream;->refillBuffer(Z)Z
:goto_0
sub-int v2, p1, v0
.line 876
iget v3, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
if-le v2, v3, :cond_1
.line 877
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
add-int/2addr v0, v2
.line 878
iget v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferSize:I
iput v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
.line 879
invoke-direct {p0, v1}, Lcom/google/protobuf/CodedInputStream;->refillBuffer(Z)Z
goto :goto_0
.line 882
:cond_1
iput v2, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
:goto_1
return-void
.line 859
:cond_2
iget p1, p0, Lcom/google/protobuf/CodedInputStream;->currentLimit:I
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->totalBytesRetired:I
sub-int/2addr p1, v0
iget v0, p0, Lcom/google/protobuf/CodedInputStream;->bufferPos:I
sub-int/2addr p1, v0
invoke-virtual {p0, p1}, Lcom/google/protobuf/CodedInputStream;->skipRawBytes(I)V
.line 861
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->truncatedMessage()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.line 854
:cond_3
invoke-static {}, Lcom/google/protobuf/InvalidProtocolBufferException;->negativeSize()Lcom/google/protobuf/InvalidProtocolBufferException;
move-result-object p1
throw p1
.end method