CronetBidirectionalStream$OnWriteCompletedRunnable.smali

.class final Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;
.super Ljava/lang/Object;

# interfaces
.implements Ljava/lang/Runnable;


# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
    value = Laegon/chrome/net/impl/CronetBidirectionalStream;
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x12
    name = "OnWriteCompletedRunnable"
.end annotation


# instance fields
.field private mByteBuffer:Ljava/nio/ByteBuffer;

.field private final mEndOfStream:Z

.field final synthetic this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;


# direct methods
.method constructor <init>(Laegon/chrome/net/impl/CronetBidirectionalStream;Ljava/nio/ByteBuffer;Z)V
    .registers 4

    iput-object p1, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

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

    iput-object p2, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->mByteBuffer:Ljava/nio/ByteBuffer;

    iput-boolean p3, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->mEndOfStream:Z

    return-void
.end method


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

    const/4 v0, 0x0

    :try_start_1
    iget-object v1, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->mByteBuffer:Ljava/nio/ByteBuffer;

    const/4 v2, 0x0

    iput-object v2, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->mByteBuffer:Ljava/nio/ByteBuffer;

    iget-object v2, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    # getter for: Laegon/chrome/net/impl/CronetBidirectionalStream;->mNativeStreamLock:Ljava/lang/Object;
    invoke-static {v2}, Laegon/chrome/net/impl/CronetBidirectionalStream;->access$000(Laegon/chrome/net/impl/CronetBidirectionalStream;)Ljava/lang/Object;

    move-result-object v2

    monitor-enter v2
    :try_end_d
    .catch Ljava/lang/Exception; {:try_start_1 .. :try_end_d} :catch_48

    :try_start_d
    iget-object v3, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    # invokes: Laegon/chrome/net/impl/CronetBidirectionalStream;->isDoneLocked()Z
    invoke-static {v3}, Laegon/chrome/net/impl/CronetBidirectionalStream;->access$100(Laegon/chrome/net/impl/CronetBidirectionalStream;)Z

    move-result v3

    if-eqz v3, :cond_17

    monitor-exit v2

    :cond_16
    :goto_16
    return-void

    :cond_17
    iget-boolean v3, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->mEndOfStream:Z

    if-eqz v3, :cond_2c

    iget-object v3, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    const/16 v4, 0xa

    # setter for: Laegon/chrome/net/impl/CronetBidirectionalStream;->mWriteState:I
    invoke-static {v3, v4}, Laegon/chrome/net/impl/CronetBidirectionalStream;->access$302(Laegon/chrome/net/impl/CronetBidirectionalStream;I)I

    iget-object v3, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    # getter for: Laegon/chrome/net/impl/CronetBidirectionalStream;->mReadState:I
    invoke-static {v3}, Laegon/chrome/net/impl/CronetBidirectionalStream;->access$200(Laegon/chrome/net/impl/CronetBidirectionalStream;)I

    move-result v3

    const/4 v4, 0x4

    if-ne v3, v4, :cond_2c

    const/4 v0, 0x1

    :cond_2c
    monitor-exit v2
    :try_end_2d
    .catchall {:try_start_d .. :try_end_2d} :catchall_4f

    :try_start_2d
    iget-object v2, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    # getter for: Laegon/chrome/net/impl/CronetBidirectionalStream;->mCallback:Laegon/chrome/net/impl/VersionSafeCallbacks$BidirectionalStreamCallback;
    invoke-static {v2}, Laegon/chrome/net/impl/CronetBidirectionalStream;->access$500(Laegon/chrome/net/impl/CronetBidirectionalStream;)Laegon/chrome/net/impl/VersionSafeCallbacks$BidirectionalStreamCallback;

    move-result-object v2

    iget-object v3, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    iget-object v4, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    # getter for: Laegon/chrome/net/impl/CronetBidirectionalStream;->mResponseInfo:Laegon/chrome/net/impl/UrlResponseInfoImpl;
    invoke-static {v4}, Laegon/chrome/net/impl/CronetBidirectionalStream;->access$400(Laegon/chrome/net/impl/CronetBidirectionalStream;)Laegon/chrome/net/impl/UrlResponseInfoImpl;

    move-result-object v4

    iget-boolean v5, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->mEndOfStream:Z

    invoke-virtual {v2, v3, v4, v1, v5}, Laegon/chrome/net/impl/VersionSafeCallbacks$BidirectionalStreamCallback;->onWriteCompleted(Laegon/chrome/net/BidirectionalStream;Laegon/chrome/net/UrlResponseInfo;Ljava/nio/ByteBuffer;Z)V

    if-eqz v0, :cond_16

    iget-object v0, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    # invokes: Laegon/chrome/net/impl/CronetBidirectionalStream;->maybeOnSucceededOnExecutor()V
    invoke-static {v0}, Laegon/chrome/net/impl/CronetBidirectionalStream;->access$600(Laegon/chrome/net/impl/CronetBidirectionalStream;)V
    :try_end_47
    .catch Ljava/lang/Exception; {:try_start_2d .. :try_end_47} :catch_48

    goto :goto_16

    :catch_48
    move-exception v0

    iget-object v1, p0, Laegon/chrome/net/impl/CronetBidirectionalStream$OnWriteCompletedRunnable;->this$0:Laegon/chrome/net/impl/CronetBidirectionalStream;

    # invokes: Laegon/chrome/net/impl/CronetBidirectionalStream;->onCallbackException(Ljava/lang/Exception;)V
    invoke-static {v1, v0}, Laegon/chrome/net/impl/CronetBidirectionalStream;->access$700(Laegon/chrome/net/impl/CronetBidirectionalStream;Ljava/lang/Exception;)V

    goto :goto_16

    :catchall_4f
    move-exception v0

    :try_start_50
    monitor-exit v2
    :try_end_51
    .catchall {:try_start_50 .. :try_end_51} :catchall_4f

    :try_start_51
    throw v0
    :try_end_52
    .catch Ljava/lang/Exception; {:try_start_51 .. :try_end_52} :catch_48
.end method