final class okhttp3.internal.http2.Http2Stream$FramingSink implements okio.Sink
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: okhttp3.internal.http2.Http2Stream$FramingSink
super_class: java.lang.Object
{
private static final long EMIT_BUFFER_SIZE;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 16384
private final okio.Buffer sendBuffer;
descriptor: Lokio/Buffer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
boolean closed;
descriptor: Z
flags: (0x0000)
boolean finished;
descriptor: Z
flags: (0x0000)
final okhttp3.internal.http2.Http2Stream this$0;
descriptor: Lokhttp3/internal/http2/Http2Stream;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lokhttp3/internal/http2/Http2Stream;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic okhttp3.internal.http2.Http2Stream$FramingSink.$assertionsDisabled:Z
3: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(okhttp3.internal.http2.Http2Stream);
descriptor: (Lokhttp3/internal/http2/Http2Stream;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new okio.Buffer
dup
invokespecial okio.Buffer.<init>:()V
putfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lokhttp3/internal/http2/Http2Stream$FramingSink;
MethodParameters:
Name Flags
this$0 final
public void write(okio.Buffer, long);
descriptor: (Lokio/Buffer;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: getstatic okhttp3.internal.http2.Http2Stream$FramingSink.$assertionsDisabled:Z
ifne 1
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
aload 1
lload 2
invokevirtual okio.Buffer.write:(Lokio/Buffer;J)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame:(Z)V
4: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.size:()J
ldc 16384
lcmp
ifge 3
5: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lokhttp3/internal/http2/Http2Stream$FramingSink;
0 6 1 source Lokio/Buffer;
0 6 2 byteCount J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
source
byteCount
private void emitFrame(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=6, args_size=2
start local 0 start local 1 0: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
dup
astore 4
monitorenter
1: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.enter:()V
2: goto 4
3: StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink int top top okhttp3.internal.http2.Http2Stream
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
invokevirtual okhttp3.internal.http2.Http2Stream.waitForIo:()V
4: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
lconst_0
lcmp
ifgt 9
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
ifne 9
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
ifne 9
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.errorCode:Lokhttp3/internal/http2/ErrorCode;
ifnull 3
5: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
6: astore 5
7: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
8: aload 5
athrow
9: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
10: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
invokevirtual okhttp3.internal.http2.Http2Stream.checkOutNotClosed:()V
11: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.size:()J
invokestatic java.lang.Math.min:(JJ)J
lstore 2
start local 2 12: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
dup
getfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
lload 2
lsub
putfield okhttp3.internal.http2.Http2Stream.bytesLeftInWriteWindow:J
13: aload 4
monitorexit
14: goto 17
end local 2 StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 4
monitorexit
16: athrow
start local 2 17: StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink int long
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.enter:()V
18: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.id:I
iload 1
ifeq 19
lload 2
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.size:()J
lcmp
ifne 19
iconst_1
goto 20
StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink int long
StackMap stack: okhttp3.internal.http2.Http2Connection int
19: iconst_0
StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink int long
StackMap stack: okhttp3.internal.http2.Http2Connection int int
20: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
lload 2
invokevirtual okhttp3.internal.http2.Http2Connection.writeData:(IZLokio/Buffer;J)V
21: goto 25
StackMap locals:
StackMap stack: java.lang.Throwable
22: astore 4
23: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
24: aload 4
athrow
25: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
invokevirtual okhttp3.internal.http2.Http2Stream$StreamTimeout.exitAndThrowIfTimedOut:()V
26: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lokhttp3/internal/http2/Http2Stream$FramingSink;
0 27 1 outFinished Z
12 15 2 toWrite J
17 27 2 toWrite J
Exception table:
from to target type
2 6 6 any
1 14 15 any
15 16 15 any
18 22 22 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
outFinished
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: getstatic okhttp3.internal.http2.Http2Stream$FramingSink.$assertionsDisabled:Z
ifne 1
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
dup
astore 1
monitorenter
2: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
invokevirtual okhttp3.internal.http2.Http2Stream.checkOutNotClosed:()V
3: aload 1
monitorexit
4: goto 9
StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink okhttp3.internal.http2.Http2Stream
StackMap stack: java.lang.Throwable
5: aload 1
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame:(Z)V
8: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
invokevirtual okhttp3.internal.http2.Http2Connection.flush:()V
9: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.size:()J
lconst_0
lcmp
ifgt 7
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lokhttp3/internal/http2/Http2Stream$FramingSink;
Exception table:
from to target type
2 4 5 any
5 6 5 any
Exceptions:
throws java.io.IOException
public okio.Timeout timeout();
descriptor: ()Lokio/Timeout;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.writeTimeout:Lokhttp3/internal/http2/Http2Stream$StreamTimeout;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lokhttp3/internal/http2/Http2Stream$FramingSink;
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=2, args_size=1
start local 0 0: getstatic okhttp3.internal.http2.Http2Stream$FramingSink.$assertionsDisabled:Z
ifne 1
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
invokestatic java.lang.Thread.holdsLock:(Ljava/lang/Object;)Z
ifeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
dup
astore 1
monitorenter
2: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
ifeq 4
aload 1
monitorexit
3: return
4: StackMap locals: okhttp3.internal.http2.Http2Stream
StackMap stack:
aload 1
monitorexit
5: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.sink:Lokhttp3/internal/http2/Http2Stream$FramingSink;
getfield okhttp3.internal.http2.Http2Stream$FramingSink.finished:Z
ifne 15
9: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.size:()J
lconst_0
lcmp
ifle 14
10: goto 12
11: StackMap locals:
StackMap stack:
aload 0
iconst_1
invokevirtual okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame:(Z)V
12: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.sendBuffer:Lokio/Buffer;
invokevirtual okio.Buffer.size:()J
lconst_0
lcmp
ifgt 11
13: goto 15
14: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.id:I
iconst_1
aconst_null
lconst_0
invokevirtual okhttp3.internal.http2.Http2Connection.writeData:(IZLokio/Buffer;J)V
15: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
dup
astore 1
monitorenter
16: aload 0
iconst_1
putfield okhttp3.internal.http2.Http2Stream$FramingSink.closed:Z
17: aload 1
monitorexit
18: goto 21
StackMap locals: okhttp3.internal.http2.Http2Stream$FramingSink okhttp3.internal.http2.Http2Stream
StackMap stack: java.lang.Throwable
19: aload 1
monitorexit
20: athrow
21: StackMap locals:
StackMap stack:
aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
getfield okhttp3.internal.http2.Http2Stream.connection:Lokhttp3/internal/http2/Http2Connection;
invokevirtual okhttp3.internal.http2.Http2Connection.flush:()V
22: aload 0
getfield okhttp3.internal.http2.Http2Stream$FramingSink.this$0:Lokhttp3/internal/http2/Http2Stream;
invokevirtual okhttp3.internal.http2.Http2Stream.cancelStreamIfNecessary:()V
23: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lokhttp3/internal/http2/Http2Stream$FramingSink;
Exception table:
from to target type
2 3 6 any
4 5 6 any
6 7 6 any
16 18 19 any
19 20 19 any
Exceptions:
throws java.io.IOException
}
SourceFile: "Http2Stream.java"
NestHost: okhttp3.internal.http2.Http2Stream
InnerClasses:
final FramingSink = okhttp3.internal.http2.Http2Stream$FramingSink of okhttp3.internal.http2.Http2Stream
StreamTimeout = okhttp3.internal.http2.Http2Stream$StreamTimeout of okhttp3.internal.http2.Http2Stream