JavaUrlRequest$OutputStreamDataSink$2.smali

.class Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;
.super Ljava/lang/Object;

# interfaces
.implements Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;


# instance fields
.field final synthetic this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

.field final synthetic val$finalChunk:Z


# direct methods
.method constructor <init>(Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;Z)V
    .registers 3

    iput-object p1, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iput-boolean p2, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->val$finalChunk:Z

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method


# virtual methods
.method public run()V
    .registers 12

    const/4 v10, 0x2

    const/4 v9, 0x1

    const-wide/16 v6, -0x1

    const/4 v8, 0x0

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mBuffer:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->flip()Ljava/nio/Buffer;

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mTotalBytes:J

    cmp-long v0, v0, v6

    if-eqz v0, :cond_5d

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mTotalBytes:J

    iget-object v2, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v2, v2, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mWrittenBytes:J

    sub-long/2addr v0, v2

    iget-object v2, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v2, v2, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mBuffer:Ljava/nio/ByteBuffer;

    invoke-virtual {v2}, Ljava/nio/ByteBuffer;->remaining()I

    move-result v2

    int-to-long v2, v2

    cmp-long v0, v0, v2

    if-gez v0, :cond_5d

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->this$0:Laegon/chrome/net/impl/JavaUrlRequest;

    new-instance v1, Ljava/lang/IllegalArgumentException;

    const-string v2, "Read upload data length %d exceeds expected length %d"

    new-array v3, v10, [Ljava/lang/Object;

    iget-object v4, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v4, v4, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mWrittenBytes:J

    iget-object v6, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v6, v6, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mBuffer:Ljava/nio/ByteBuffer;

    invoke-virtual {v6}, Ljava/nio/ByteBuffer;->remaining()I

    move-result v6

    int-to-long v6, v6

    add-long/2addr v4, v6

    invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v4

    aput-object v4, v3, v8

    iget-object v4, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v4, v4, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mTotalBytes:J

    invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v4

    aput-object v4, v3, v9

    invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v2

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

    # invokes: Laegon/chrome/net/impl/JavaUrlRequest;->enterUploadErrorState(Ljava/lang/Throwable;)V
    invoke-static {v0, v1}, Laegon/chrome/net/impl/JavaUrlRequest;->access$400(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/lang/Throwable;)V

    :goto_5c
    return-void

    :cond_5d
    :goto_5d
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mBuffer:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->hasRemaining()Z

    move-result v0

    if-eqz v0, :cond_7c

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v2, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mWrittenBytes:J

    iget-object v1, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v1, v1, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mOutputChannel:Ljava/nio/channels/WritableByteChannel;

    iget-object v4, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v4, v4, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mBuffer:Ljava/nio/ByteBuffer;

    invoke-interface {v1, v4}, Ljava/nio/channels/WritableByteChannel;->write(Ljava/nio/ByteBuffer;)I

    move-result v1

    int-to-long v4, v1

    add-long/2addr v2, v4

    iput-wide v2, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mWrittenBytes:J

    goto :goto_5d

    :cond_7c
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mUrlConnectionOutputStream:Ljava/io/OutputStream;

    invoke-virtual {v0}, Ljava/io/OutputStream;->flush()V

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mWrittenBytes:J

    iget-object v2, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v2, v2, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mTotalBytes:J

    cmp-long v0, v0, v2

    if-ltz v0, :cond_9b

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mTotalBytes:J

    cmp-long v0, v0, v6

    if-nez v0, :cond_b8

    iget-boolean v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->val$finalChunk:Z

    if-nez v0, :cond_b8

    :cond_9b
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mBuffer:Ljava/nio/ByteBuffer;

    invoke-virtual {v0}, Ljava/nio/ByteBuffer;->clear()Ljava/nio/Buffer;

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mSinkState:Ljava/util/concurrent/atomic/AtomicReference;

    invoke-static {v8}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->set(Ljava/lang/Object;)V

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    new-instance v1, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2$1;

    invoke-direct {v1, p0}, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2$1;-><init>(Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;)V

    # invokes: Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->executeOnUploadExecutor(Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)V
    invoke-static {v0, v1}, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->access$500(Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;Laegon/chrome/net/impl/JavaUrlRequest$CheckedRunnable;)V

    goto :goto_5c

    :cond_b8
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mTotalBytes:J

    cmp-long v0, v0, v6

    if-nez v0, :cond_c6

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    invoke-virtual {v0}, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->finish()V

    goto :goto_5c

    :cond_c6
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mTotalBytes:J

    iget-object v2, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v2, v2, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mWrittenBytes:J

    cmp-long v0, v0, v2

    if-nez v0, :cond_d8

    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    invoke-virtual {v0}, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->finish()V

    goto :goto_5c

    :cond_d8
    iget-object v0, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-object v0, v0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->this$0:Laegon/chrome/net/impl/JavaUrlRequest;

    new-instance v1, Ljava/lang/IllegalArgumentException;

    const-string v2, "Read upload data length %d exceeds expected length %d"

    new-array v3, v10, [Ljava/lang/Object;

    iget-object v4, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v4, v4, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mWrittenBytes:J

    invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v4

    aput-object v4, v3, v8

    iget-object v4, p0, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink$2;->this$1:Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;

    iget-wide v4, v4, Laegon/chrome/net/impl/JavaUrlRequest$OutputStreamDataSink;->mTotalBytes:J

    invoke-static {v4, v5}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;

    move-result-object v4

    aput-object v4, v3, v9

    invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

    move-result-object v2

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

    # invokes: Laegon/chrome/net/impl/JavaUrlRequest;->enterUploadErrorState(Ljava/lang/Throwable;)V
    invoke-static {v0, v1}, Laegon/chrome/net/impl/JavaUrlRequest;->access$400(Laegon/chrome/net/impl/JavaUrlRequest;Ljava/lang/Throwable;)V

    goto/16 :goto_5c
.end method