m.smali

.class final Lcom/google/protobuf/m;
.super Lcom/google/protobuf/k;
.source "CodedOutputStream.java"


# instance fields
.field private final out:Ljava/io/OutputStream;


# direct methods
.method constructor <init>(Ljava/io/OutputStream;I)V
    .registers 5

    .prologue
    .line 2291
    invoke-direct {p0, p2}, Lcom/google/protobuf/k;-><init>(I)V

    .line 2292
    if-nez p1, :cond_d

    .line 2293
    new-instance v0, Ljava/lang/NullPointerException;

    const-string v1, "out"

    invoke-direct {v0, v1}, Ljava/lang/NullPointerException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 2295
    :cond_d
    iput-object p1, p0, Lcom/google/protobuf/m;->out:Ljava/io/OutputStream;

    .line 2296
    return-void
.end method

.method private dI(I)V
    .registers 4

    .prologue
    .line 2625
    iget v0, p0, Lcom/google/protobuf/m;->limit:I

    iget v1, p0, Lcom/google/protobuf/m;->position:I

    sub-int/2addr v0, v1

    if-ge v0, p1, :cond_a

    .line 2626
    invoke-direct {p0}, Lcom/google/protobuf/m;->doFlush()V

    .line 2628
    :cond_a
    return-void
.end method

.method private doFlush()V
    .registers 5

    .prologue
    const/4 v3, 0x0

    .line 2631
    iget-object v0, p0, Lcom/google/protobuf/m;->out:Ljava/io/OutputStream;

    iget-object v1, p0, Lcom/google/protobuf/m;->buffer:[B

    iget v2, p0, Lcom/google/protobuf/m;->position:I

    invoke-virtual {v0, v1, v3, v2}, Ljava/io/OutputStream;->write([BII)V

    .line 2632
    iput v3, p0, Lcom/google/protobuf/m;->position:I

    .line 2633
    return-void
.end method

.method private write([BII)V
    .registers 7

    .prologue
    .line 2549
    iget v0, p0, Lcom/google/protobuf/m;->limit:I

    iget v1, p0, Lcom/google/protobuf/m;->position:I

    sub-int/2addr v0, v1

    if-lt v0, p3, :cond_19

    .line 2551
    iget-object v0, p0, Lcom/google/protobuf/m;->buffer:[B

    iget v1, p0, Lcom/google/protobuf/m;->position:I

    invoke-static {p1, p2, v0, v1, p3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 2552
    iget v0, p0, Lcom/google/protobuf/m;->position:I

    add-int/2addr v0, p3

    iput v0, p0, Lcom/google/protobuf/m;->position:I

    .line 2576
    :goto_13
    iget v0, p0, Lcom/google/protobuf/m;->bip:I

    add-int/2addr v0, p3

    iput v0, p0, Lcom/google/protobuf/m;->bip:I

    .line 2578
    return-void

    .line 2557
    :cond_19
    iget v0, p0, Lcom/google/protobuf/m;->limit:I

    iget v1, p0, Lcom/google/protobuf/m;->position:I

    sub-int/2addr v0, v1

    .line 2558
    iget-object v1, p0, Lcom/google/protobuf/m;->buffer:[B

    iget v2, p0, Lcom/google/protobuf/m;->position:I

    invoke-static {p1, p2, v1, v2, v0}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 2559
    add-int v1, p2, v0

    .line 2560
    sub-int/2addr p3, v0

    .line 2561
    iget v2, p0, Lcom/google/protobuf/m;->limit:I

    iput v2, p0, Lcom/google/protobuf/m;->position:I

    .line 2562
    iget v2, p0, Lcom/google/protobuf/m;->bip:I

    add-int/2addr v0, v2

    iput v0, p0, Lcom/google/protobuf/m;->bip:I

    .line 2563
    invoke-direct {p0}, Lcom/google/protobuf/m;->doFlush()V

    .line 2568
    iget v0, p0, Lcom/google/protobuf/m;->limit:I

    if-gt p3, v0, :cond_41

    .line 2570
    iget-object v0, p0, Lcom/google/protobuf/m;->buffer:[B

    const/4 v2, 0x0

    invoke-static {p1, v1, v0, v2, p3}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 2571
    iput p3, p0, Lcom/google/protobuf/m;->position:I

    goto :goto_13

    .line 2574
    :cond_41
    iget-object v0, p0, Lcom/google/protobuf/m;->out:Ljava/io/OutputStream;

    invoke-virtual {v0, p1, v1, p3}, Ljava/io/OutputStream;->write([BII)V

    goto :goto_13
.end method


# virtual methods
.method public final a(ILcom/google/protobuf/ByteString;)V
    .registers 4

    .prologue
    .line 2353
    const/4 v0, 0x2

    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->writeTag(II)V

    .line 2354
    invoke-virtual {p0, p2}, Lcom/google/protobuf/m;->c(Lcom/google/protobuf/ByteString;)V

    .line 2355
    return-void
.end method

.method public final a(ILcom/google/protobuf/MessageLite;)V
    .registers 4

    .prologue
    .line 2404
    const/4 v0, 0x2

    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->writeTag(II)V

    .line 2405
    invoke-virtual {p0, p2}, Lcom/google/protobuf/m;->a(Lcom/google/protobuf/MessageLite;)V

    .line 2406
    return-void
.end method

.method public final a(Lcom/google/protobuf/MessageLite;)V
    .registers 3

    .prologue
    .line 2428
    invoke-interface {p1}, Lcom/google/protobuf/MessageLite;->getSerializedSize()I

    move-result v0

    invoke-virtual {p0, v0}, Lcom/google/protobuf/m;->dy(I)V

    .line 2429
    invoke-interface {p1, p0}, Lcom/google/protobuf/MessageLite;->writeTo(Lcom/google/protobuf/CodedOutputStream;)V

    .line 2430
    return-void
.end method

.method public final ag(II)V
    .registers 4

    .prologue
    .line 2312
    const/16 v0, 0x14

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2313
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->aq(II)V

    .line 2314
    invoke-virtual {p0, p2}, Lcom/google/protobuf/m;->dG(I)V

    .line 2315
    return-void
.end method

.method public final an(II)V
    .registers 5

    .prologue
    .line 2305
    const/16 v0, 0x14

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2306
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->aq(II)V

    .line 3872
    if-ltz p2, :cond_f

    .line 3873
    invoke-virtual {p0, p2}, Lcom/google/protobuf/k;->dG(I)V

    :goto_e
    return-void

    .line 3876
    :cond_f
    int-to-long v0, p2

    invoke-virtual {p0, v0, v1}, Lcom/google/protobuf/k;->B(J)V

    goto :goto_e
.end method

.method public final ao(II)V
    .registers 4

    .prologue
    .line 2319
    const/16 v0, 0xe

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2320
    const/4 v0, 0x5

    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->aq(II)V

    .line 2321
    invoke-virtual {p0, p2}, Lcom/google/protobuf/m;->dH(I)V

    .line 2322
    return-void
.end method

.method public final b(B)V
    .registers 4

    .prologue
    .line 2434
    iget v0, p0, Lcom/google/protobuf/m;->position:I

    iget v1, p0, Lcom/google/protobuf/m;->limit:I

    if-ne v0, v1, :cond_9

    .line 2435
    invoke-direct {p0}, Lcom/google/protobuf/m;->doFlush()V

    .line 2438
    :cond_9
    invoke-virtual {p0, p1}, Lcom/google/protobuf/m;->c(B)V

    .line 2439
    return-void
.end method

.method public final b(IJ)V
    .registers 6

    .prologue
    .line 2326
    const/16 v0, 0x14

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2327
    const/4 v0, 0x0

    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->aq(II)V

    .line 2328
    invoke-virtual {p0, p2, p3}, Lcom/google/protobuf/m;->B(J)V

    .line 2329
    return-void
.end method

.method public final b(ILcom/google/protobuf/ByteString;)V
    .registers 6

    .prologue
    const/4 v2, 0x3

    const/4 v1, 0x1

    .line 2420
    invoke-virtual {p0, v1, v2}, Lcom/google/protobuf/m;->writeTag(II)V

    .line 2421
    const/4 v0, 0x2

    invoke-virtual {p0, v0, p1}, Lcom/google/protobuf/m;->ag(II)V

    .line 2422
    invoke-virtual {p0, v2, p2}, Lcom/google/protobuf/m;->a(ILcom/google/protobuf/ByteString;)V

    .line 2423
    const/4 v0, 0x4

    invoke-virtual {p0, v1, v0}, Lcom/google/protobuf/m;->writeTag(II)V

    .line 2424
    return-void
.end method

.method public final b(ILcom/google/protobuf/MessageLite;)V
    .registers 6

    .prologue
    const/4 v2, 0x3

    const/4 v1, 0x1

    .line 2411
    invoke-virtual {p0, v1, v2}, Lcom/google/protobuf/m;->writeTag(II)V

    .line 2412
    const/4 v0, 0x2

    invoke-virtual {p0, v0, p1}, Lcom/google/protobuf/m;->ag(II)V

    .line 2413
    invoke-virtual {p0, v2, p2}, Lcom/google/protobuf/m;->a(ILcom/google/protobuf/MessageLite;)V

    .line 2414
    const/4 v0, 0x4

    invoke-virtual {p0, v1, v0}, Lcom/google/protobuf/m;->writeTag(II)V

    .line 2415
    return-void
.end method

.method public final c(Lcom/google/protobuf/ByteString;)V
    .registers 3

    .prologue
    .line 2380
    invoke-virtual {p1}, Lcom/google/protobuf/ByteString;->size()I

    move-result v0

    invoke-virtual {p0, v0}, Lcom/google/protobuf/m;->dy(I)V

    .line 2381
    invoke-virtual {p1, p0}, Lcom/google/protobuf/ByteString;->writeTo(Lcom/google/protobuf/d;)V

    .line 2382
    return-void
.end method

.method public final d(IJ)V
    .registers 6

    .prologue
    .line 2333
    const/16 v0, 0x12

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2334
    const/4 v0, 0x1

    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->aq(II)V

    .line 2335
    invoke-virtual {p0, p2, p3}, Lcom/google/protobuf/m;->C(J)V

    .line 2336
    return-void
.end method

.method public final d([BII)V
    .registers 4

    .prologue
    .line 2582
    invoke-direct {p0, p1, p2, p3}, Lcom/google/protobuf/m;->write([BII)V

    .line 2583
    return-void
.end method

.method public final dx(I)V
    .registers 4

    .prologue
    .line 2443
    if-ltz p1, :cond_6

    .line 2444
    invoke-virtual {p0, p1}, Lcom/google/protobuf/m;->dy(I)V

    .line 2449
    :goto_5
    return-void

    .line 2447
    :cond_6
    int-to-long v0, p1

    invoke-virtual {p0, v0, v1}, Lcom/google/protobuf/m;->v(J)V

    goto :goto_5
.end method

.method public final dy(I)V
    .registers 3

    .prologue
    .line 2453
    const/16 v0, 0xa

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2454
    invoke-virtual {p0, p1}, Lcom/google/protobuf/m;->dG(I)V

    .line 2455
    return-void
.end method

.method public final dz(I)V
    .registers 3

    .prologue
    .line 2459
    const/4 v0, 0x4

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2460
    invoke-virtual {p0, p1}, Lcom/google/protobuf/m;->dH(I)V

    .line 2461
    return-void
.end method

.method public final flush()V
    .registers 2

    .prologue
    .line 2540
    iget v0, p0, Lcom/google/protobuf/m;->position:I

    if-lez v0, :cond_7

    .line 2542
    invoke-direct {p0}, Lcom/google/protobuf/m;->doFlush()V

    .line 2544
    :cond_7
    return-void
.end method

.method public final ft(Ljava/lang/String;)V
    .registers 8

    .prologue
    .line 2480
    :try_start_0
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v0

    mul-int/lit8 v0, v0, 0x3

    .line 2481
    invoke-static {v0}, Lcom/google/protobuf/m;->dD(I)I

    move-result v1

    .line 2485
    add-int v2, v1, v0

    iget v3, p0, Lcom/google/protobuf/m;->limit:I

    if-le v2, v3, :cond_1f

    .line 2490
    new-array v1, v0, [B

    .line 2491
    const/4 v2, 0x0

    invoke-static {p1, v1, v2, v0}, Lcom/google/protobuf/Utf8;->a(Ljava/lang/CharSequence;[BII)I

    move-result v0

    .line 2492
    invoke-virtual {p0, v0}, Lcom/google/protobuf/m;->dy(I)V

    .line 4582
    const/4 v2, 0x0

    invoke-direct {p0, v1, v2, v0}, Lcom/google/protobuf/m;->write([BII)V

    .line 2536
    :goto_1e
    return-void

    .line 2498
    :cond_1f
    add-int/2addr v0, v1

    iget v2, p0, Lcom/google/protobuf/m;->limit:I

    iget v3, p0, Lcom/google/protobuf/m;->position:I

    sub-int/2addr v2, v3

    if-le v0, v2, :cond_2a

    .line 2500
    invoke-direct {p0}, Lcom/google/protobuf/m;->doFlush()V

    .line 2505
    :cond_2a
    invoke-virtual {p1}, Ljava/lang/String;->length()I

    move-result v0

    invoke-static {v0}, Lcom/google/protobuf/m;->dD(I)I

    move-result v0

    .line 2506
    iget v2, p0, Lcom/google/protobuf/m;->position:I
    :try_end_34
    .catch Lcom/google/protobuf/Utf8$UnpairedSurrogateException; {:try_start_0 .. :try_end_34} :catch_64

    .line 2509
    if-ne v0, v1, :cond_69

    .line 2510
    add-int v1, v2, v0

    :try_start_38
    iput v1, p0, Lcom/google/protobuf/m;->position:I

    .line 2511
    iget-object v1, p0, Lcom/google/protobuf/m;->buffer:[B

    iget v3, p0, Lcom/google/protobuf/m;->position:I

    iget v4, p0, Lcom/google/protobuf/m;->limit:I

    iget v5, p0, Lcom/google/protobuf/m;->position:I

    sub-int/2addr v4, v5

    invoke-static {p1, v1, v3, v4}, Lcom/google/protobuf/Utf8;->a(Ljava/lang/CharSequence;[BII)I

    move-result v1

    .line 2514
    iput v2, p0, Lcom/google/protobuf/m;->position:I

    .line 2515
    sub-int v3, v1, v2

    sub-int v0, v3, v0

    .line 2516
    invoke-virtual {p0, v0}, Lcom/google/protobuf/m;->dG(I)V

    .line 2517
    iput v1, p0, Lcom/google/protobuf/m;->position:I

    .line 2523
    :goto_52
    iget v1, p0, Lcom/google/protobuf/m;->bip:I

    add-int/2addr v0, v1

    iput v0, p0, Lcom/google/protobuf/m;->bip:I
    :try_end_57
    .catch Lcom/google/protobuf/Utf8$UnpairedSurrogateException; {:try_start_38 .. :try_end_57} :catch_58
    .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_38 .. :try_end_57} :catch_7b

    goto :goto_1e

    .line 2524
    :catch_58
    move-exception v0

    .line 2527
    :try_start_59
    iget v1, p0, Lcom/google/protobuf/m;->bip:I

    iget v3, p0, Lcom/google/protobuf/m;->position:I

    sub-int/2addr v3, v2

    sub-int/2addr v1, v3

    iput v1, p0, Lcom/google/protobuf/m;->bip:I

    .line 2528
    iput v2, p0, Lcom/google/protobuf/m;->position:I

    .line 2529
    throw v0
    :try_end_64
    .catch Lcom/google/protobuf/Utf8$UnpairedSurrogateException; {:try_start_59 .. :try_end_64} :catch_64

    .line 2533
    :catch_64
    move-exception v0

    .line 2534
    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->a(Ljava/lang/String;Lcom/google/protobuf/Utf8$UnpairedSurrogateException;)V

    goto :goto_1e

    .line 2519
    :cond_69
    :try_start_69
    invoke-static {p1}, Lcom/google/protobuf/Utf8;->r(Ljava/lang/CharSequence;)I

    move-result v0

    .line 2520
    invoke-virtual {p0, v0}, Lcom/google/protobuf/m;->dG(I)V

    .line 2521
    iget-object v1, p0, Lcom/google/protobuf/m;->buffer:[B

    iget v3, p0, Lcom/google/protobuf/m;->position:I

    invoke-static {p1, v1, v3, v0}, Lcom/google/protobuf/Utf8;->a(Ljava/lang/CharSequence;[BII)I

    move-result v1

    iput v1, p0, Lcom/google/protobuf/m;->position:I
    :try_end_7a
    .catch Lcom/google/protobuf/Utf8$UnpairedSurrogateException; {:try_start_69 .. :try_end_7a} :catch_58
    .catch Ljava/lang/ArrayIndexOutOfBoundsException; {:try_start_69 .. :try_end_7a} :catch_7b

    goto :goto_52

    .line 2530
    :catch_7b
    move-exception v0

    .line 2531
    :try_start_7c
    new-instance v1, Lcom/google/protobuf/CodedOutputStream$OutOfSpaceException;

    invoke-direct {v1, v0}, Lcom/google/protobuf/CodedOutputStream$OutOfSpaceException;-><init>(Ljava/lang/Throwable;)V

    throw v1
    :try_end_82
    .catch Lcom/google/protobuf/Utf8$UnpairedSurrogateException; {:try_start_7c .. :try_end_82} :catch_64
.end method

.method public final j(IZ)V
    .registers 5

    .prologue
    const/4 v0, 0x0

    .line 2340
    const/16 v1, 0xb

    invoke-direct {p0, v1}, Lcom/google/protobuf/m;->dI(I)V

    .line 2341
    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->aq(II)V

    .line 2342
    if-eqz p2, :cond_c

    const/4 v0, 0x1

    :cond_c
    int-to-byte v0, v0

    invoke-virtual {p0, v0}, Lcom/google/protobuf/m;->c(B)V

    .line 2343
    return-void
.end method

.method public final k([BI)V
    .registers 4

    .prologue
    .line 2386
    invoke-virtual {p0, p2}, Lcom/google/protobuf/m;->dy(I)V

    .line 2387
    const/4 v0, 0x0

    invoke-direct {p0, p1, v0, p2}, Lcom/google/protobuf/m;->write([BII)V

    .line 2388
    return-void
.end method

.method public final m(ILjava/lang/String;)V
    .registers 4

    .prologue
    .line 2347
    const/4 v0, 0x2

    invoke-virtual {p0, p1, v0}, Lcom/google/protobuf/m;->writeTag(II)V

    .line 2348
    invoke-virtual {p0, p2}, Lcom/google/protobuf/m;->ft(Ljava/lang/String;)V

    .line 2349
    return-void
.end method

.method public final v(J)V
    .registers 4

    .prologue
    .line 2465
    const/16 v0, 0xa

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2466
    invoke-virtual {p0, p1, p2}, Lcom/google/protobuf/m;->B(J)V

    .line 2467
    return-void
.end method

.method public final w(J)V
    .registers 4

    .prologue
    .line 2471
    const/16 v0, 0x8

    invoke-direct {p0, v0}, Lcom/google/protobuf/m;->dI(I)V

    .line 2472
    invoke-virtual {p0, p1, p2}, Lcom/google/protobuf/m;->C(J)V

    .line 2473
    return-void
.end method

.method public final writeTag(II)V
    .registers 4

    .prologue
    .line 2300
    .line 3072
    shl-int/lit8 v0, p1, 0x3

    or-int/2addr v0, p2

    .line 2300
    invoke-virtual {p0, v0}, Lcom/google/protobuf/m;->dy(I)V

    .line 2301
    return-void
.end method