Pipe$PipeSink.smali
.class final Ldc/squareup/okio/Pipe$PipeSink;
.super Ljava/lang/Object;
# interfaces
.implements Ldc/squareup/okio/Sink;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Ldc/squareup/okio/Pipe;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x10
name = "PipeSink"
.end annotation
# instance fields
.field final synthetic this$0:Ldc/squareup/okio/Pipe;
.field final timeout:Ldc/squareup/okio/PushableTimeout;
# direct methods
.method constructor <init>(Ldc/squareup/okio/Pipe;)V
.registers 2
.line 1
iput-object p1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance p1, Ldc/squareup/okio/PushableTimeout;
invoke-direct {p1}, Ldc/squareup/okio/PushableTimeout;-><init>()V
iput-object p1, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
return-void
.end method
# virtual methods
.method public close()V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-object v0, v0, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
monitor-enter v0
.line 2
:try_start_5
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-boolean v2, v1, Ldc/squareup/okio/Pipe;->sinkClosed:Z
if-eqz v2, :cond_d
monitor-exit v0
return-void
.line 4
:cond_d
# getter for: Ldc/squareup/okio/Pipe;->foldedSink:Ldc/squareup/okio/Sink;
invoke-static {v1}, Ldc/squareup/okio/Pipe;->access$000(Ldc/squareup/okio/Pipe;)Ldc/squareup/okio/Sink;
move-result-object v1
if-eqz v1, :cond_1a
.line 5
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
# getter for: Ldc/squareup/okio/Pipe;->foldedSink:Ldc/squareup/okio/Sink;
invoke-static {v1}, Ldc/squareup/okio/Pipe;->access$000(Ldc/squareup/okio/Pipe;)Ldc/squareup/okio/Sink;
move-result-object v1
goto :goto_40
.line 7
:cond_1a
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-boolean v2, v1, Ldc/squareup/okio/Pipe;->sourceClosed:Z
if-eqz v2, :cond_35
iget-object v1, v1, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
invoke-virtual {v1}, Ldc/squareup/okio/Buffer;->size()J
move-result-wide v1
const-wide/16 v3, 0x0
cmp-long v1, v1, v3
if-gtz v1, :cond_2d
goto :goto_35
:cond_2d
new-instance v1, Ljava/io/IOException;
const-string v2, "source is closed"
invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v1
.line 8
:cond_35
:goto_35
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
const/4 v2, 0x1
iput-boolean v2, v1, Ldc/squareup/okio/Pipe;->sinkClosed:Z
.line 9
iget-object v1, v1, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V
const/4 v1, 0x0
.line 11
:goto_40
monitor-exit v0
:try_end_41
.catchall {:try_start_5 .. :try_end_41} :catchall_5d
if-eqz v1, :cond_5c
.line 14
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-interface {v1}, Ldc/squareup/okio/Sink;->timeout()Ldc/squareup/okio/Timeout;
move-result-object v2
invoke-virtual {v0, v2}, Ldc/squareup/okio/PushableTimeout;->push(Ldc/squareup/okio/Timeout;)V
.line 16
:try_start_4c
invoke-interface {v1}, Ldc/squareup/okio/Sink;->close()V
:try_end_4f
.catchall {:try_start_4c .. :try_end_4f} :catchall_55
.line 18
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-virtual {v0}, Ldc/squareup/okio/PushableTimeout;->pop()V
goto :goto_5c
:catchall_55
move-exception v0
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-virtual {v1}, Ldc/squareup/okio/PushableTimeout;->pop()V
.line 19
throw v0
:cond_5c
:goto_5c
return-void
:catchall_5d
move-exception v1
.line 20
:try_start_5e
monitor-exit v0
:try_end_5f
.catchall {:try_start_5e .. :try_end_5f} :catchall_5d
throw v1
.end method
.method public flush()V
.registers 6
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-object v0, v0, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
monitor-enter v0
.line 2
:try_start_5
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-boolean v2, v1, Ldc/squareup/okio/Pipe;->sinkClosed:Z
if-nez v2, :cond_51
.line 4
# getter for: Ldc/squareup/okio/Pipe;->foldedSink:Ldc/squareup/okio/Sink;
invoke-static {v1}, Ldc/squareup/okio/Pipe;->access$000(Ldc/squareup/okio/Pipe;)Ldc/squareup/okio/Sink;
move-result-object v1
if-eqz v1, :cond_18
.line 5
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
# getter for: Ldc/squareup/okio/Pipe;->foldedSink:Ldc/squareup/okio/Sink;
invoke-static {v1}, Ldc/squareup/okio/Pipe;->access$000(Ldc/squareup/okio/Pipe;)Ldc/squareup/okio/Sink;
move-result-object v1
goto :goto_34
.line 6
:cond_18
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-boolean v2, v1, Ldc/squareup/okio/Pipe;->sourceClosed:Z
if-eqz v2, :cond_33
iget-object v1, v1, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
invoke-virtual {v1}, Ldc/squareup/okio/Buffer;->size()J
move-result-wide v1
const-wide/16 v3, 0x0
cmp-long v1, v1, v3
if-gtz v1, :cond_2b
goto :goto_33
.line 7
:cond_2b
new-instance v1, Ljava/io/IOException;
const-string v2, "source is closed"
invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw v1
:cond_33
:goto_33
const/4 v1, 0x0
.line 9
:goto_34
monitor-exit v0
:try_end_35
.catchall {:try_start_5 .. :try_end_35} :catchall_59
if-eqz v1, :cond_50
.line 12
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-interface {v1}, Ldc/squareup/okio/Sink;->timeout()Ldc/squareup/okio/Timeout;
move-result-object v2
invoke-virtual {v0, v2}, Ldc/squareup/okio/PushableTimeout;->push(Ldc/squareup/okio/Timeout;)V
.line 14
:try_start_40
invoke-interface {v1}, Ldc/squareup/okio/Sink;->flush()V
:try_end_43
.catchall {:try_start_40 .. :try_end_43} :catchall_49
.line 16
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-virtual {v0}, Ldc/squareup/okio/PushableTimeout;->pop()V
goto :goto_50
:catchall_49
move-exception v0
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-virtual {v1}, Ldc/squareup/okio/PushableTimeout;->pop()V
.line 17
throw v0
:cond_50
:goto_50
return-void
.line 18
:cond_51
:try_start_51
new-instance v1, Ljava/lang/IllegalStateException;
const-string v2, "closed"
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v1
:catchall_59
move-exception v1
.line 25
monitor-exit v0
:try_end_5b
.catchall {:try_start_51 .. :try_end_5b} :catchall_59
throw v1
.end method
.method public timeout()Ldc/squareup/okio/Timeout;
.registers 2
.line 1
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
return-object v0
.end method
.method public write(Ldc/squareup/okio/Buffer;J)V
.registers 12
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 1
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-object v0, v0, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
monitor-enter v0
.line 2
:try_start_5
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-boolean v1, v1, Ldc/squareup/okio/Pipe;->sinkClosed:Z
if-nez v1, :cond_77
:goto_b
const-wide/16 v1, 0x0
cmp-long v3, p2, v1
if-lez v3, :cond_59
.line 5
iget-object v3, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
# getter for: Ldc/squareup/okio/Pipe;->foldedSink:Ldc/squareup/okio/Sink;
invoke-static {v3}, Ldc/squareup/okio/Pipe;->access$000(Ldc/squareup/okio/Pipe;)Ldc/squareup/okio/Sink;
move-result-object v3
if-eqz v3, :cond_20
.line 6
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
# getter for: Ldc/squareup/okio/Pipe;->foldedSink:Ldc/squareup/okio/Sink;
invoke-static {v1}, Ldc/squareup/okio/Pipe;->access$000(Ldc/squareup/okio/Pipe;)Ldc/squareup/okio/Sink;
move-result-object v1
goto :goto_5a
.line 10
:cond_20
iget-object v3, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-boolean v4, v3, Ldc/squareup/okio/Pipe;->sourceClosed:Z
if-nez v4, :cond_51
.line 12
iget-wide v4, v3, Ldc/squareup/okio/Pipe;->maxBufferSize:J
iget-object v3, v3, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
invoke-virtual {v3}, Ldc/squareup/okio/Buffer;->size()J
move-result-wide v6
sub-long/2addr v4, v6
cmp-long v1, v4, v1
if-nez v1, :cond_3d
.line 14
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
iget-object v2, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-object v2, v2, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
invoke-virtual {v1, v2}, Ldc/squareup/okio/Timeout;->waitUntilNotified(Ljava/lang/Object;)V
goto :goto_b
.line 18
:cond_3d
invoke-static {v4, v5, p2, p3}, Ljava/lang/Math;->min(JJ)J
move-result-wide v1
.line 19
iget-object v3, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-object v3, v3, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
invoke-virtual {v3, p1, v1, v2}, Ldc/squareup/okio/Buffer;->write(Ldc/squareup/okio/Buffer;J)V
sub-long/2addr p2, v1
.line 21
iget-object v1, p0, Ldc/squareup/okio/Pipe$PipeSink;->this$0:Ldc/squareup/okio/Pipe;
iget-object v1, v1, Ldc/squareup/okio/Pipe;->buffer:Ldc/squareup/okio/Buffer;
invoke-virtual {v1}, Ljava/lang/Object;->notifyAll()V
goto :goto_b
.line 22
:cond_51
new-instance p1, Ljava/io/IOException;
const-string p2, "source is closed"
invoke-direct {p1, p2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
throw p1
:cond_59
const/4 v1, 0x0
.line 35
:goto_5a
monitor-exit v0
:try_end_5b
.catchall {:try_start_5 .. :try_end_5b} :catchall_7f
if-eqz v1, :cond_76
.line 38
iget-object v0, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-interface {v1}, Ldc/squareup/okio/Sink;->timeout()Ldc/squareup/okio/Timeout;
move-result-object v2
invoke-virtual {v0, v2}, Ldc/squareup/okio/PushableTimeout;->push(Ldc/squareup/okio/Timeout;)V
.line 40
:try_start_66
invoke-interface {v1, p1, p2, p3}, Ldc/squareup/okio/Sink;->write(Ldc/squareup/okio/Buffer;J)V
:try_end_69
.catchall {:try_start_66 .. :try_end_69} :catchall_6f
.line 42
iget-object p1, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-virtual {p1}, Ldc/squareup/okio/PushableTimeout;->pop()V
goto :goto_76
:catchall_6f
move-exception p1
iget-object p2, p0, Ldc/squareup/okio/Pipe$PipeSink;->timeout:Ldc/squareup/okio/PushableTimeout;
invoke-virtual {p2}, Ldc/squareup/okio/PushableTimeout;->pop()V
.line 43
throw p1
:cond_76
:goto_76
return-void
.line 44
:cond_77
:try_start_77
new-instance p1, Ljava/lang/IllegalStateException;
const-string p2, "closed"
invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw p1
:catchall_7f
move-exception p1
.line 65
monitor-exit v0
:try_end_81
.catchall {:try_start_77 .. :try_end_81} :catchall_7f
throw p1
.end method