public final class io.netty.channel.ChannelOutboundBuffer
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: io.netty.channel.ChannelOutboundBuffer
super_class: java.lang.Object
{
static final int CHANNEL_OUTBOUND_BUFFER_ENTRY_OVERHEAD;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
private static final io.netty.util.internal.logging.InternalLogger logger;
descriptor: Lio/netty/util/internal/logging/InternalLogger;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final io.netty.util.concurrent.FastThreadLocal<java.nio.ByteBuffer[]> NIO_BUFFERS;
descriptor: Lio/netty/util/concurrent/FastThreadLocal;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Lio/netty/util/concurrent/FastThreadLocal<[Ljava/nio/ByteBuffer;>;
private final io.netty.channel.Channel channel;
descriptor: Lio/netty/channel/Channel;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private io.netty.channel.ChannelOutboundBuffer$Entry flushedEntry;
descriptor: Lio/netty/channel/ChannelOutboundBuffer$Entry;
flags: (0x0002) ACC_PRIVATE
private io.netty.channel.ChannelOutboundBuffer$Entry unflushedEntry;
descriptor: Lio/netty/channel/ChannelOutboundBuffer$Entry;
flags: (0x0002) ACC_PRIVATE
private io.netty.channel.ChannelOutboundBuffer$Entry tailEntry;
descriptor: Lio/netty/channel/ChannelOutboundBuffer$Entry;
flags: (0x0002) ACC_PRIVATE
private int flushed;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int nioBufferCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private long nioBufferSize;
descriptor: J
flags: (0x0002) ACC_PRIVATE
private boolean inFail;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private static final java.util.concurrent.atomic.AtomicLongFieldUpdater<io.netty.channel.ChannelOutboundBuffer> TOTAL_PENDING_SIZE_UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicLongFieldUpdater<Lio/netty/channel/ChannelOutboundBuffer;>;
private volatile long totalPendingSize;
descriptor: J
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<io.netty.channel.ChannelOutboundBuffer> UNWRITABLE_UPDATER;
descriptor: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater<Lio/netty/channel/ChannelOutboundBuffer;>;
private volatile int unwritable;
descriptor: I
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
private volatile java.lang.Runnable fireChannelWritabilityChangedTask;
descriptor: Ljava/lang/Runnable;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
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=2, locals=0, args_size=0
0: ldc Lio/netty/channel/ChannelOutboundBuffer;
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 io.netty.channel.ChannelOutboundBuffer.$assertionsDisabled:Z
3: ldc "io.netty.transport.outboundBufferEntrySizeOverhead"
bipush 96
invokestatic io.netty.util.internal.SystemPropertyUtil.getInt:(Ljava/lang/String;I)I
4: putstatic io.netty.channel.ChannelOutboundBuffer.CHANNEL_OUTBOUND_BUFFER_ENTRY_OVERHEAD:I
5: ldc Lio/netty/channel/ChannelOutboundBuffer;
invokestatic io.netty.util.internal.logging.InternalLoggerFactory.getInstance:(Ljava/lang/Class;)Lio/netty/util/internal/logging/InternalLogger;
putstatic io.netty.channel.ChannelOutboundBuffer.logger:Lio/netty/util/internal/logging/InternalLogger;
6: new io.netty.channel.ChannelOutboundBuffer$1
dup
invokespecial io.netty.channel.ChannelOutboundBuffer$1.<init>:()V
putstatic io.netty.channel.ChannelOutboundBuffer.NIO_BUFFERS:Lio/netty/util/concurrent/FastThreadLocal;
7: ldc Lio/netty/channel/ChannelOutboundBuffer;
ldc "totalPendingSize"
invokestatic java.util.concurrent.atomic.AtomicLongFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
8: putstatic io.netty.channel.ChannelOutboundBuffer.TOTAL_PENDING_SIZE_UPDATER:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
9: ldc Lio/netty/channel/ChannelOutboundBuffer;
ldc "unwritable"
invokestatic java.util.concurrent.atomic.AtomicIntegerFieldUpdater.newUpdater:(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
10: putstatic io.netty.channel.ChannelOutboundBuffer.UNWRITABLE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
11: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(io.netty.channel.AbstractChannel);
descriptor: (Lio/netty/channel/AbstractChannel;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 1
putfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
2: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 3 1 channel Lio/netty/channel/AbstractChannel;
MethodParameters:
Name Flags
channel
public void addMessage(java.lang.Object, int, io.netty.channel.ChannelPromise);
descriptor: (Ljava/lang/Object;ILio/netty/channel/ChannelPromise;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
iload 2
aload 1
invokestatic io.netty.channel.ChannelOutboundBuffer.total:(Ljava/lang/Object;)J
aload 3
invokestatic io.netty.channel.ChannelOutboundBuffer$Entry.newInstance:(Ljava/lang/Object;IJLio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 4
start local 4 1: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.tailEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
ifnonnull 4
2: aload 0
aconst_null
putfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
3: goto 6
4: StackMap locals: io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.tailEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 5
start local 5 5: aload 5
aload 4
putfield io.netty.channel.ChannelOutboundBuffer$Entry.next:Lio/netty/channel/ChannelOutboundBuffer$Entry;
end local 5 6: StackMap locals:
StackMap stack:
aload 0
aload 4
putfield io.netty.channel.ChannelOutboundBuffer.tailEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
7: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unflushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
ifnonnull 9
8: aload 0
aload 4
putfield io.netty.channel.ChannelOutboundBuffer.unflushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
9: StackMap locals:
StackMap stack:
aload 0
aload 4
getfield io.netty.channel.ChannelOutboundBuffer$Entry.pendingSize:I
i2l
iconst_0
invokevirtual io.netty.channel.ChannelOutboundBuffer.incrementPendingOutboundBytes:(JZ)V
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 11 1 msg Ljava/lang/Object;
0 11 2 size I
0 11 3 promise Lio/netty/channel/ChannelPromise;
1 11 4 entry Lio/netty/channel/ChannelOutboundBuffer$Entry;
5 6 5 tail Lio/netty/channel/ChannelOutboundBuffer$Entry;
MethodParameters:
Name Flags
msg
size
promise
public void addFlush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unflushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 1
start local 1 1: aload 1
ifnull 11
2: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
ifnonnull 4
3: aload 0
aload 1
putfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
4: StackMap locals: io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 0
dup
getfield io.netty.channel.ChannelOutboundBuffer.flushed:I
iconst_1
iadd
putfield io.netty.channel.ChannelOutboundBuffer.flushed:I
5: aload 1
getfield io.netty.channel.ChannelOutboundBuffer$Entry.promise:Lio/netty/channel/ChannelPromise;
invokeinterface io.netty.channel.ChannelPromise.setUncancellable:()Z
ifne 8
6: aload 1
invokevirtual io.netty.channel.ChannelOutboundBuffer$Entry.cancel:()I
istore 2
start local 2 7: aload 0
iload 2
i2l
iconst_0
iconst_1
invokevirtual io.netty.channel.ChannelOutboundBuffer.decrementPendingOutboundBytes:(JZZ)V
end local 2 8: StackMap locals:
StackMap stack:
aload 1
getfield io.netty.channel.ChannelOutboundBuffer$Entry.next:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 1
9: aload 1
ifnonnull 4
10: aload 0
aconst_null
putfield io.netty.channel.ChannelOutboundBuffer.unflushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
11: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lio/netty/channel/ChannelOutboundBuffer;
1 12 1 entry Lio/netty/channel/ChannelOutboundBuffer$Entry;
7 8 2 pending I
void incrementPendingOutboundBytes(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
iconst_1
invokevirtual io.netty.channel.ChannelOutboundBuffer.incrementPendingOutboundBytes:(JZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 2 1 size J
MethodParameters:
Name Flags
size
private void incrementPendingOutboundBytes(long, boolean);
descriptor: (JZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 3 0: lload 1
lconst_0
lcmp
ifne 2
1: return
2: StackMap locals:
StackMap stack:
getstatic io.netty.channel.ChannelOutboundBuffer.TOTAL_PENDING_SIZE_UPDATER:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 1
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.addAndGet:(Ljava/lang/Object;J)J
lstore 4
start local 4 3: lload 4
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
invokeinterface io.netty.channel.ChannelConfig.getWriteBufferHighWaterMark:()I
i2l
lcmp
ifle 5
4: aload 0
iload 3
invokevirtual io.netty.channel.ChannelOutboundBuffer.setUnwritable:(Z)V
5: StackMap locals: long
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 6 1 size J
0 6 3 invokeLater Z
3 6 4 newWriteBufferSize J
MethodParameters:
Name Flags
size
invokeLater
void decrementPendingOutboundBytes(long);
descriptor: (J)V
flags: (0x0000)
Code:
stack=5, locals=3, args_size=2
start local 0 start local 1 0: aload 0
lload 1
iconst_1
iconst_1
invokevirtual io.netty.channel.ChannelOutboundBuffer.decrementPendingOutboundBytes:(JZZ)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 2 1 size J
MethodParameters:
Name Flags
size
private void decrementPendingOutboundBytes(long, boolean, boolean);
descriptor: (JZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=4
start local 0 start local 1 start local 3 start local 4 0: lload 1
lconst_0
lcmp
ifne 2
1: return
2: StackMap locals:
StackMap stack:
getstatic io.netty.channel.ChannelOutboundBuffer.TOTAL_PENDING_SIZE_UPDATER:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
lload 1
lneg
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.addAndGet:(Ljava/lang/Object;J)J
lstore 5
start local 5 3: iload 4
ifeq 5
lload 5
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
invokeinterface io.netty.channel.ChannelConfig.getWriteBufferLowWaterMark:()I
i2l
lcmp
ifge 5
4: aload 0
iload 3
invokevirtual io.netty.channel.ChannelOutboundBuffer.setWritable:(Z)V
5: StackMap locals: long
StackMap stack:
return
end local 5 end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 6 1 size J
0 6 3 invokeLater Z
0 6 4 notifyWritability Z
3 6 5 newWriteBufferSize J
MethodParameters:
Name Flags
size
invokeLater
notifyWritability
private static long total(java.lang.Object);
descriptor: (Ljava/lang/Object;)J
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
instanceof io.netty.buffer.ByteBuf
ifeq 2
1: aload 0
checkcast io.netty.buffer.ByteBuf
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
i2l
lreturn
2: StackMap locals:
StackMap stack:
aload 0
instanceof io.netty.channel.FileRegion
ifeq 4
3: aload 0
checkcast io.netty.channel.FileRegion
invokeinterface io.netty.channel.FileRegion.count:()J
lreturn
4: StackMap locals:
StackMap stack:
aload 0
instanceof io.netty.buffer.ByteBufHolder
ifeq 6
5: aload 0
checkcast io.netty.buffer.ByteBufHolder
invokeinterface io.netty.buffer.ByteBufHolder.content:()Lio/netty/buffer/ByteBuf;
invokevirtual io.netty.buffer.ByteBuf.readableBytes:()I
i2l
lreturn
6: StackMap locals:
StackMap stack:
ldc -1
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 msg Ljava/lang/Object;
MethodParameters:
Name Flags
msg
public java.lang.Object current();
descriptor: ()Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 1
getfield io.netty.channel.ChannelOutboundBuffer$Entry.msg:Ljava/lang/Object;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lio/netty/channel/ChannelOutboundBuffer;
1 4 1 entry Lio/netty/channel/ChannelOutboundBuffer$Entry;
public void progress(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 3
start local 3 1: getstatic io.netty.channel.ChannelOutboundBuffer.$assertionsDisabled:Z
ifne 2
aload 3
ifnonnull 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.promise:Lio/netty/channel/ChannelPromise;
astore 4
start local 4 3: aload 4
instanceof io.netty.channel.ChannelProgressivePromise
ifeq 7
4: aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.progress:J
lload 1
ladd
lstore 5
start local 5 5: aload 3
lload 5
putfield io.netty.channel.ChannelOutboundBuffer$Entry.progress:J
6: aload 4
checkcast io.netty.channel.ChannelProgressivePromise
lload 5
aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.total:J
invokeinterface io.netty.channel.ChannelProgressivePromise.tryProgress:(JJ)Z
pop
end local 5 7: StackMap locals: io.netty.channel.ChannelPromise
StackMap stack:
return
end local 4 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 8 1 amount J
1 8 3 e Lio/netty/channel/ChannelOutboundBuffer$Entry;
3 8 4 p Lio/netty/channel/ChannelPromise;
5 7 5 progress J
MethodParameters:
Name Flags
amount
public boolean remove();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 1
start local 1 1: aload 1
ifnonnull 4
2: aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.clearNioBuffers:()V
3: iconst_0
ireturn
4: StackMap locals: io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 1
getfield io.netty.channel.ChannelOutboundBuffer$Entry.msg:Ljava/lang/Object;
astore 2
start local 2 5: aload 1
getfield io.netty.channel.ChannelOutboundBuffer$Entry.promise:Lio/netty/channel/ChannelPromise;
astore 3
start local 3 6: aload 1
getfield io.netty.channel.ChannelOutboundBuffer$Entry.pendingSize:I
istore 4
start local 4 7: aload 0
aload 1
invokevirtual io.netty.channel.ChannelOutboundBuffer.removeEntry:(Lio/netty/channel/ChannelOutboundBuffer$Entry;)V
8: aload 1
getfield io.netty.channel.ChannelOutboundBuffer$Entry.cancelled:Z
ifne 12
9: aload 2
invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
10: aload 3
invokestatic io.netty.channel.ChannelOutboundBuffer.safeSuccess:(Lio/netty/channel/ChannelPromise;)V
11: aload 0
iload 4
i2l
iconst_0
iconst_1
invokevirtual io.netty.channel.ChannelOutboundBuffer.decrementPendingOutboundBytes:(JZZ)V
12: StackMap locals: java.lang.Object io.netty.channel.ChannelPromise int
StackMap stack:
aload 1
invokevirtual io.netty.channel.ChannelOutboundBuffer$Entry.recycle:()V
13: iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/netty/channel/ChannelOutboundBuffer;
1 14 1 e Lio/netty/channel/ChannelOutboundBuffer$Entry;
5 14 2 msg Ljava/lang/Object;
6 14 3 promise Lio/netty/channel/ChannelPromise;
7 14 4 size I
public boolean remove(java.lang.Throwable);
descriptor: (Ljava/lang/Throwable;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_1
invokevirtual io.netty.channel.ChannelOutboundBuffer.remove0:(Ljava/lang/Throwable;Z)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 1 1 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
cause
private boolean remove0(java.lang.Throwable, boolean);
descriptor: (Ljava/lang/Throwable;Z)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 3
start local 3 1: aload 3
ifnonnull 4
2: aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.clearNioBuffers:()V
3: iconst_0
ireturn
4: StackMap locals: io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.msg:Ljava/lang/Object;
astore 4
start local 4 5: aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.promise:Lio/netty/channel/ChannelPromise;
astore 5
start local 5 6: aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.pendingSize:I
istore 6
start local 6 7: aload 0
aload 3
invokevirtual io.netty.channel.ChannelOutboundBuffer.removeEntry:(Lio/netty/channel/ChannelOutboundBuffer$Entry;)V
8: aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.cancelled:Z
ifne 12
9: aload 4
invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
10: aload 5
aload 1
invokestatic io.netty.channel.ChannelOutboundBuffer.safeFail:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
11: aload 0
iload 6
i2l
iconst_0
iload 2
invokevirtual io.netty.channel.ChannelOutboundBuffer.decrementPendingOutboundBytes:(JZZ)V
12: StackMap locals: java.lang.Object io.netty.channel.ChannelPromise int
StackMap stack:
aload 3
invokevirtual io.netty.channel.ChannelOutboundBuffer$Entry.recycle:()V
13: iconst_1
ireturn
end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 14 1 cause Ljava/lang/Throwable;
0 14 2 notifyWritability Z
1 14 3 e Lio/netty/channel/ChannelOutboundBuffer$Entry;
5 14 4 msg Ljava/lang/Object;
6 14 5 promise Lio/netty/channel/ChannelPromise;
7 14 6 size I
MethodParameters:
Name Flags
cause
notifyWritability
private void removeEntry(io.netty.channel.ChannelOutboundBuffer$Entry);
descriptor: (Lio/netty/channel/ChannelOutboundBuffer$Entry;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
dup
getfield io.netty.channel.ChannelOutboundBuffer.flushed:I
iconst_1
isub
dup_x1
putfield io.netty.channel.ChannelOutboundBuffer.flushed:I
ifne 6
1: aload 0
aconst_null
putfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
2: aload 1
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.tailEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
if_acmpne 7
3: aload 0
aconst_null
putfield io.netty.channel.ChannelOutboundBuffer.tailEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
4: aload 0
aconst_null
putfield io.netty.channel.ChannelOutboundBuffer.unflushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
aload 1
getfield io.netty.channel.ChannelOutboundBuffer$Entry.next:Lio/netty/channel/ChannelOutboundBuffer$Entry;
putfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
7: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 8 1 e Lio/netty/channel/ChannelOutboundBuffer$Entry;
MethodParameters:
Name Flags
e
public void removeBytes(long);
descriptor: (J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.current:()Ljava/lang/Object;
astore 3
start local 3 1: aload 3
instanceof io.netty.buffer.ByteBuf
ifne 3
2: getstatic io.netty.channel.ChannelOutboundBuffer.$assertionsDisabled:Z
ifne 15
lload 1
lconst_0
lcmp
ifeq 15
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 3
checkcast io.netty.buffer.ByteBuf
astore 4
start local 4 4: aload 4
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 5
start local 5 5: aload 4
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
iload 5
isub
istore 6
start local 6 6: iload 6
i2l
lload 1
lcmp
ifgt 12
7: lload 1
lconst_0
lcmp
ifeq 10
8: aload 0
iload 6
i2l
invokevirtual io.netty.channel.ChannelOutboundBuffer.progress:(J)V
9: lload 1
iload 6
i2l
lsub
lstore 1
10: StackMap locals: io.netty.buffer.ByteBuf int int
StackMap stack:
aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.remove:()Z
pop
11: goto 0
12: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifeq 15
13: aload 4
iload 5
lload 1
l2i
iadd
invokevirtual io.netty.buffer.ByteBuf.readerIndex:(I)Lio/netty/buffer/ByteBuf;
pop
14: aload 0
lload 1
invokevirtual io.netty.channel.ChannelOutboundBuffer.progress:(J)V
end local 6 end local 5 end local 4 end local 3 15: StackMap locals: io.netty.channel.ChannelOutboundBuffer long
StackMap stack:
aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.clearNioBuffers:()V
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 17 1 writtenBytes J
1 15 3 msg Ljava/lang/Object;
4 15 4 buf Lio/netty/buffer/ByteBuf;
5 15 5 readerIndex I
6 15 6 readableBytes I
MethodParameters:
Name Flags
writtenBytes
private void clearNioBuffers();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.nioBufferCount:I
istore 1
start local 1 1: iload 1
ifle 4
2: aload 0
iconst_0
putfield io.netty.channel.ChannelOutboundBuffer.nioBufferCount:I
3: getstatic io.netty.channel.ChannelOutboundBuffer.NIO_BUFFERS:Lio/netty/util/concurrent/FastThreadLocal;
invokevirtual io.netty.util.concurrent.FastThreadLocal.get:()Ljava/lang/Object;
checkcast java.lang.Object[]
iconst_0
iload 1
aconst_null
invokestatic java.util.Arrays.fill:([Ljava/lang/Object;IILjava/lang/Object;)V
4: StackMap locals: int
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/channel/ChannelOutboundBuffer;
1 5 1 count I
public java.nio.ByteBuffer[] nioBuffers();
descriptor: ()[Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: aload 0
ldc 2147483647
ldc 2147483647
invokevirtual io.netty.channel.ChannelOutboundBuffer.nioBuffers:(IJ)[Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelOutboundBuffer;
public java.nio.ByteBuffer[] nioBuffers(int, long);
descriptor: (IJ)[Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=18, args_size=3
start local 0 start local 1 start local 2 0: getstatic io.netty.channel.ChannelOutboundBuffer.$assertionsDisabled:Z
ifne 1
iload 1
ifgt 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic io.netty.channel.ChannelOutboundBuffer.$assertionsDisabled:Z
ifne 2
lload 2
lconst_0
lcmp
ifgt 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
lconst_0
lstore 4
start local 4 3: iconst_0
istore 6
start local 6 4: invokestatic io.netty.util.internal.InternalThreadLocalMap.get:()Lio/netty/util/internal/InternalThreadLocalMap;
astore 7
start local 7 5: getstatic io.netty.channel.ChannelOutboundBuffer.NIO_BUFFERS:Lio/netty/util/concurrent/FastThreadLocal;
aload 7
invokevirtual io.netty.util.concurrent.FastThreadLocal.get:(Lio/netty/util/internal/InternalThreadLocalMap;)Ljava/lang/Object;
checkcast java.nio.ByteBuffer[]
astore 8
start local 8 6: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 9
start local 9 7: goto 45
8: StackMap locals: io.netty.channel.ChannelOutboundBuffer int long long int io.netty.util.internal.InternalThreadLocalMap java.nio.ByteBuffer[] io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 9
getfield io.netty.channel.ChannelOutboundBuffer$Entry.cancelled:Z
ifne 44
9: aload 9
getfield io.netty.channel.ChannelOutboundBuffer$Entry.msg:Ljava/lang/Object;
checkcast io.netty.buffer.ByteBuf
astore 10
start local 10 10: aload 10
invokevirtual io.netty.buffer.ByteBuf.readerIndex:()I
istore 11
start local 11 11: aload 10
invokevirtual io.netty.buffer.ByteBuf.writerIndex:()I
iload 11
isub
istore 12
start local 12 12: iload 12
ifle 44
13: lload 2
iload 12
i2l
lsub
lload 4
lcmp
ifge 15
iload 6
ifeq 15
14: goto 46
15: StackMap locals: io.netty.buffer.ByteBuf int int
StackMap stack:
lload 4
iload 12
i2l
ladd
lstore 4
16: aload 9
getfield io.netty.channel.ChannelOutboundBuffer$Entry.count:I
istore 13
start local 13 17: iload 13
iconst_m1
if_icmpne 19
18: aload 9
aload 10
invokevirtual io.netty.buffer.ByteBuf.nioBufferCount:()I
dup
istore 13
putfield io.netty.channel.ChannelOutboundBuffer$Entry.count:I
19: StackMap locals: int
StackMap stack:
iload 1
iload 6
iload 13
iadd
invokestatic java.lang.Math.min:(II)I
istore 14
start local 14 20: iload 14
aload 8
arraylength
if_icmple 23
21: aload 8
iload 14
iload 6
invokestatic io.netty.channel.ChannelOutboundBuffer.expandNioBufferArray:([Ljava/nio/ByteBuffer;II)[Ljava/nio/ByteBuffer;
astore 8
22: getstatic io.netty.channel.ChannelOutboundBuffer.NIO_BUFFERS:Lio/netty/util/concurrent/FastThreadLocal;
aload 7
aload 8
invokevirtual io.netty.util.concurrent.FastThreadLocal.set:(Lio/netty/util/internal/InternalThreadLocalMap;Ljava/lang/Object;)V
23: StackMap locals: int
StackMap stack:
iload 13
iconst_1
if_icmpne 29
24: aload 9
getfield io.netty.channel.ChannelOutboundBuffer$Entry.buf:Ljava/nio/ByteBuffer;
astore 15
start local 15 25: aload 15
ifnonnull 27
26: aload 9
aload 10
iload 11
iload 12
invokevirtual io.netty.buffer.ByteBuf.internalNioBuffer:(II)Ljava/nio/ByteBuffer;
dup
astore 15
putfield io.netty.channel.ChannelOutboundBuffer$Entry.buf:Ljava/nio/ByteBuffer;
27: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 8
iload 6
iinc 6 1
aload 15
aastore
end local 15 28: goto 42
29: StackMap locals:
StackMap stack:
aload 9
getfield io.netty.channel.ChannelOutboundBuffer$Entry.bufs:[Ljava/nio/ByteBuffer;
astore 15
start local 15 30: aload 15
ifnonnull 32
31: aload 9
aload 10
invokevirtual io.netty.buffer.ByteBuf.nioBuffers:()[Ljava/nio/ByteBuffer;
dup
astore 15
putfield io.netty.channel.ChannelOutboundBuffer$Entry.bufs:[Ljava/nio/ByteBuffer;
32: StackMap locals: java.nio.ByteBuffer[]
StackMap stack:
iconst_0
istore 16
start local 16 33: goto 41
34: StackMap locals: int
StackMap stack:
aload 15
iload 16
aaload
astore 17
start local 17 35: aload 17
ifnonnull 37
36: goto 42
37: StackMap locals: java.nio.ByteBuffer
StackMap stack:
aload 17
invokevirtual java.nio.ByteBuffer.hasRemaining:()Z
ifne 39
38: goto 40
39: StackMap locals:
StackMap stack:
aload 8
iload 6
iinc 6 1
aload 17
aastore
end local 17 40: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
41: iload 16
aload 15
arraylength
if_icmpge 42
iload 6
iload 1
if_icmplt 34
end local 16 end local 15 42: StackMap locals:
StackMap stack:
iload 6
iload 1
if_icmpne 44
43: goto 46
end local 14 end local 13 end local 12 end local 11 end local 10 44: StackMap locals: io.netty.channel.ChannelOutboundBuffer int long long int io.netty.util.internal.InternalThreadLocalMap java.nio.ByteBuffer[] io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 9
getfield io.netty.channel.ChannelOutboundBuffer$Entry.next:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 9
45: StackMap locals:
StackMap stack:
aload 0
aload 9
invokevirtual io.netty.channel.ChannelOutboundBuffer.isFlushedEntry:(Lio/netty/channel/ChannelOutboundBuffer$Entry;)Z
ifeq 46
aload 9
getfield io.netty.channel.ChannelOutboundBuffer$Entry.msg:Ljava/lang/Object;
instanceof io.netty.buffer.ByteBuf
ifne 8
46: StackMap locals:
StackMap stack:
aload 0
iload 6
putfield io.netty.channel.ChannelOutboundBuffer.nioBufferCount:I
47: aload 0
lload 4
putfield io.netty.channel.ChannelOutboundBuffer.nioBufferSize:J
48: aload 8
areturn
end local 9 end local 8 end local 7 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 49 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 49 1 maxCount I
0 49 2 maxBytes J
3 49 4 nioBufferSize J
4 49 6 nioBufferCount I
5 49 7 threadLocalMap Lio/netty/util/internal/InternalThreadLocalMap;
6 49 8 nioBuffers [Ljava/nio/ByteBuffer;
7 49 9 entry Lio/netty/channel/ChannelOutboundBuffer$Entry;
10 44 10 buf Lio/netty/buffer/ByteBuf;
11 44 11 readerIndex I
12 44 12 readableBytes I
17 44 13 count I
20 44 14 neededSpace I
25 28 15 nioBuf Ljava/nio/ByteBuffer;
30 42 15 nioBufs [Ljava/nio/ByteBuffer;
33 42 16 i I
35 40 17 nioBuf Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
maxCount
maxBytes
private static java.nio.ByteBuffer[] expandNioBufferArray(java.nio.ByteBuffer[], int, int);
descriptor: ([Ljava/nio/ByteBuffer;II)[Ljava/nio/ByteBuffer;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
arraylength
istore 3
start local 3 1: StackMap locals: int
StackMap stack:
iload 3
iconst_1
ishl
istore 3
2: iload 3
ifge 4
3: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
4: StackMap locals:
StackMap stack:
iload 1
iload 3
5: if_icmpgt 1
6: iload 3
anewarray java.nio.ByteBuffer
astore 4
start local 4 7: aload 0
iconst_0
aload 4
iconst_0
iload 2
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
8: aload 4
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 array [Ljava/nio/ByteBuffer;
0 9 1 neededSpace I
0 9 2 size I
1 9 3 newCapacity I
7 9 4 newArray [Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
array
neededSpace
size
public int nioBufferCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.nioBufferCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelOutboundBuffer;
public long nioBufferSize();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.nioBufferSize:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelOutboundBuffer;
public boolean isWritable();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unwritable:I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelOutboundBuffer;
public boolean getUserDefinedWritability(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unwritable:I
iload 1
invokestatic io.netty.channel.ChannelOutboundBuffer.writabilityMask:(I)I
iand
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 2 1 index I
MethodParameters:
Name Flags
index
public void setUserDefinedWritability(int, boolean);
descriptor: (IZ)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iload 2
ifeq 3
1: aload 0
iload 1
invokevirtual io.netty.channel.ChannelOutboundBuffer.setUserDefinedWritability:(I)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
iload 1
invokevirtual io.netty.channel.ChannelOutboundBuffer.clearUserDefinedWritability:(I)V
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 5 1 index I
0 5 2 writable Z
MethodParameters:
Name Flags
index
writable
private void setUserDefinedWritability(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: iload 1
invokestatic io.netty.channel.ChannelOutboundBuffer.writabilityMask:(I)I
iconst_m1
ixor
istore 2
start local 2 1: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unwritable:I
istore 3
start local 3 2: iload 3
iload 2
iand
istore 4
start local 4 3: getstatic io.netty.channel.ChannelOutboundBuffer.UNWRITABLE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 3
iload 4
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 1
4: iload 3
ifeq 6
iload 4
ifne 6
5: aload 0
iconst_1
invokevirtual io.netty.channel.ChannelOutboundBuffer.fireChannelWritabilityChanged:(Z)V
end local 4 end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 7 1 index I
1 7 2 mask I
2 6 3 oldValue I
3 6 4 newValue I
MethodParameters:
Name Flags
index
private void clearUserDefinedWritability(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: iload 1
invokestatic io.netty.channel.ChannelOutboundBuffer.writabilityMask:(I)I
istore 2
start local 2 1: StackMap locals: int
StackMap stack:
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unwritable:I
istore 3
start local 3 2: iload 3
iload 2
ior
istore 4
start local 4 3: getstatic io.netty.channel.ChannelOutboundBuffer.UNWRITABLE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 3
iload 4
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 1
4: iload 3
ifne 6
iload 4
ifeq 6
5: aload 0
iconst_1
invokevirtual io.netty.channel.ChannelOutboundBuffer.fireChannelWritabilityChanged:(Z)V
end local 4 end local 3 6: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 7 1 index I
1 7 2 mask I
2 6 3 oldValue I
3 6 4 newValue I
MethodParameters:
Name Flags
index
private static int writabilityMask(int);
descriptor: (I)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: iload 0
iconst_1
if_icmplt 1
iload 0
bipush 31
if_icmple 2
1: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "index: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 0
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " (expected: 1~31)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iconst_1
iload 0
ishl
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 index I
MethodParameters:
Name Flags
index
private void setWritable(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unwritable:I
istore 2
start local 2 1: iload 2
bipush -2
iand
istore 3
start local 3 2: getstatic io.netty.channel.ChannelOutboundBuffer.UNWRITABLE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 2
iload 3
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
3: iload 2
ifeq 5
iload 3
ifne 5
4: aload 0
iload 1
invokevirtual io.netty.channel.ChannelOutboundBuffer.fireChannelWritabilityChanged:(Z)V
end local 3 end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 6 1 invokeLater Z
1 5 2 oldValue I
2 5 3 newValue I
MethodParameters:
Name Flags
invokeLater
private void setUnwritable(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=4, args_size=2
start local 0 start local 1 0: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unwritable:I
istore 2
start local 2 1: iload 2
iconst_1
ior
istore 3
start local 3 2: getstatic io.netty.channel.ChannelOutboundBuffer.UNWRITABLE_UPDATER:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
aload 0
iload 2
iload 3
invokevirtual java.util.concurrent.atomic.AtomicIntegerFieldUpdater.compareAndSet:(Ljava/lang/Object;II)Z
ifeq 0
3: iload 2
ifne 5
iload 3
ifeq 5
4: aload 0
iload 1
invokevirtual io.netty.channel.ChannelOutboundBuffer.fireChannelWritabilityChanged:(Z)V
end local 3 end local 2 5: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 6 1 invokeLater Z
1 5 2 oldValue I
2 5 3 newValue I
MethodParameters:
Name Flags
invokeLater
private void fireChannelWritabilityChanged(boolean);
descriptor: (Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.pipeline:()Lio/netty/channel/ChannelPipeline;
astore 2
start local 2 1: iload 1
ifeq 7
2: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.fireChannelWritabilityChangedTask:Ljava/lang/Runnable;
astore 3
start local 3 3: aload 3
ifnonnull 5
4: aload 0
new io.netty.channel.ChannelOutboundBuffer$2
dup
aload 0
aload 2
invokespecial io.netty.channel.ChannelOutboundBuffer$2.<init>:(Lio/netty/channel/ChannelOutboundBuffer;Lio/netty/channel/ChannelPipeline;)V
dup
astore 3
putfield io.netty.channel.ChannelOutboundBuffer.fireChannelWritabilityChangedTask:Ljava/lang/Runnable;
5: StackMap locals: io.netty.channel.ChannelPipeline java.lang.Runnable
StackMap stack:
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
aload 3
invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
end local 3 6: goto 8
7: StackMap locals:
StackMap stack:
aload 2
invokeinterface io.netty.channel.ChannelPipeline.fireChannelWritabilityChanged:()Lio/netty/channel/ChannelPipeline;
pop
8: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 9 1 invokeLater Z
1 9 2 pipeline Lio/netty/channel/ChannelPipeline;
3 6 3 task Ljava/lang/Runnable;
MethodParameters:
Name Flags
invokeLater
public int size();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushed:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelOutboundBuffer;
public boolean isEmpty();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushed:I
ifne 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelOutboundBuffer;
void failFlushed(java.lang.Throwable, boolean);
descriptor: (Ljava/lang/Throwable;Z)V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.inFail:Z
ifeq 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.netty.channel.ChannelOutboundBuffer.inFail:Z
3: StackMap locals:
StackMap stack:
aload 0
aload 1
iload 2
invokevirtual io.netty.channel.ChannelOutboundBuffer.remove0:(Ljava/lang/Throwable;Z)Z
ifne 3
4: goto 8
StackMap locals:
StackMap stack: java.lang.Throwable
5: astore 3
6: aload 0
iconst_0
putfield io.netty.channel.ChannelOutboundBuffer.inFail:Z
7: aload 3
athrow
8: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield io.netty.channel.ChannelOutboundBuffer.inFail:Z
9: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 10 1 cause Ljava/lang/Throwable;
0 10 2 notify Z
Exception table:
from to target type
2 5 5 any
MethodParameters:
Name Flags
cause
notify
void close(java.lang.Throwable, boolean);
descriptor: (Ljava/lang/Throwable;Z)V
flags: (0x0000)
Code:
stack=6, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.inFail:Z
ifeq 3
1: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.eventLoop:()Lio/netty/channel/EventLoop;
new io.netty.channel.ChannelOutboundBuffer$3
dup
aload 0
aload 1
iload 2
invokespecial io.netty.channel.ChannelOutboundBuffer$3.<init>:(Lio/netty/channel/ChannelOutboundBuffer;Ljava/lang/Throwable;Z)V
invokeinterface io.netty.channel.EventLoop.execute:(Ljava/lang/Runnable;)V
2: return
3: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield io.netty.channel.ChannelOutboundBuffer.inFail:Z
4: iload 2
ifne 6
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.isOpen:()Z
ifeq 6
5: new java.lang.IllegalStateException
dup
ldc "close() must be invoked after the channel is closed."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.isEmpty:()Z
ifne 8
7: new java.lang.IllegalStateException
dup
ldc "close() must be invoked after all flushed writes are handled."
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unflushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 3
start local 3 9: goto 16
10: StackMap locals: io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.pendingSize:I
istore 4
start local 4 11: getstatic io.netty.channel.ChannelOutboundBuffer.TOTAL_PENDING_SIZE_UPDATER:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
aload 0
iload 4
ineg
i2l
invokevirtual java.util.concurrent.atomic.AtomicLongFieldUpdater.addAndGet:(Ljava/lang/Object;J)J
pop2
12: aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.cancelled:Z
ifne 15
13: aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.msg:Ljava/lang/Object;
invokestatic io.netty.util.ReferenceCountUtil.safeRelease:(Ljava/lang/Object;)V
14: aload 3
getfield io.netty.channel.ChannelOutboundBuffer$Entry.promise:Lio/netty/channel/ChannelPromise;
aload 1
invokestatic io.netty.channel.ChannelOutboundBuffer.safeFail:(Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
15: StackMap locals: int
StackMap stack:
aload 3
invokevirtual io.netty.channel.ChannelOutboundBuffer$Entry.recycleAndGetNext:()Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 3
end local 4 16: StackMap locals:
StackMap stack:
aload 3
ifnonnull 10
end local 3 17: goto 21
StackMap locals: io.netty.channel.ChannelOutboundBuffer java.lang.Throwable int
StackMap stack: java.lang.Throwable
18: astore 5
19: aload 0
iconst_0
putfield io.netty.channel.ChannelOutboundBuffer.inFail:Z
20: aload 5
athrow
21: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield io.netty.channel.ChannelOutboundBuffer.inFail:Z
22: aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.clearNioBuffers:()V
23: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 24 1 cause Ljava/lang/Throwable;
0 24 2 allowChannelOpen Z
9 17 3 e Lio/netty/channel/ChannelOutboundBuffer$Entry;
11 16 4 size I
Exception table:
from to target type
8 18 18 any
MethodParameters:
Name Flags
cause final
allowChannelOpen final
void close(java.nio.channels.ClosedChannelException);
descriptor: (Ljava/nio/channels/ClosedChannelException;)V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
iconst_0
invokevirtual io.netty.channel.ChannelOutboundBuffer.close:(Ljava/lang/Throwable;Z)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 2 1 cause Ljava/nio/channels/ClosedChannelException;
MethodParameters:
Name Flags
cause
private static void safeSuccess(io.netty.channel.ChannelPromise);
descriptor: (Lio/netty/channel/ChannelPromise;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
aconst_null
aload 0
instanceof io.netty.channel.VoidChannelPromise
ifeq 1
aconst_null
goto 2
StackMap locals: io.netty.channel.ChannelPromise
StackMap stack: io.netty.channel.ChannelPromise null
1: getstatic io.netty.channel.ChannelOutboundBuffer.logger:Lio/netty/util/internal/logging/InternalLogger;
StackMap locals: io.netty.channel.ChannelPromise
StackMap stack: io.netty.channel.ChannelPromise null io.netty.util.internal.logging.InternalLogger
2: invokestatic io.netty.util.internal.PromiseNotificationUtil.trySuccess:(Lio/netty/util/concurrent/Promise;Ljava/lang/Object;Lio/netty/util/internal/logging/InternalLogger;)V
3: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 promise Lio/netty/channel/ChannelPromise;
MethodParameters:
Name Flags
promise
private static void safeFail(io.netty.channel.ChannelPromise, java.lang.Throwable);
descriptor: (Lio/netty/channel/ChannelPromise;Ljava/lang/Throwable;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aload 0
instanceof io.netty.channel.VoidChannelPromise
ifeq 1
aconst_null
goto 2
StackMap locals: io.netty.channel.ChannelPromise java.lang.Throwable
StackMap stack: io.netty.channel.ChannelPromise java.lang.Throwable
1: getstatic io.netty.channel.ChannelOutboundBuffer.logger:Lio/netty/util/internal/logging/InternalLogger;
StackMap locals: io.netty.channel.ChannelPromise java.lang.Throwable
StackMap stack: io.netty.channel.ChannelPromise java.lang.Throwable io.netty.util.internal.logging.InternalLogger
2: invokestatic io.netty.util.internal.PromiseNotificationUtil.tryFailure:(Lio/netty/util/concurrent/Promise;Ljava/lang/Throwable;Lio/netty/util/internal/logging/InternalLogger;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 promise Lio/netty/channel/ChannelPromise;
0 4 1 cause Ljava/lang/Throwable;
MethodParameters:
Name Flags
promise
cause
public void recycle();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=0, locals=1, args_size=1
start local 0 0: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelOutboundBuffer;
RuntimeVisibleAnnotations:
java.lang.Deprecated()
public long totalPendingWriteBytes();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.totalPendingSize:J
lreturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lio/netty/channel/ChannelOutboundBuffer;
public long bytesBeforeUnwritable();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
invokeinterface io.netty.channel.ChannelConfig.getWriteBufferHighWaterMark:()I
i2l
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.totalPendingSize:J
lsub
lstore 1
start local 1 1: lload 1
lconst_0
lcmp
ifle 5
2: aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.isWritable:()Z
ifeq 3
lload 1
goto 4
StackMap locals: long
StackMap stack:
3: lconst_0
StackMap locals:
StackMap stack: long
4: lreturn
5: StackMap locals:
StackMap stack:
lconst_0
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/channel/ChannelOutboundBuffer;
1 6 1 bytes J
public long bytesBeforeWritable();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield io.netty.channel.ChannelOutboundBuffer.totalPendingSize:J
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.channel:Lio/netty/channel/Channel;
invokeinterface io.netty.channel.Channel.config:()Lio/netty/channel/ChannelConfig;
invokeinterface io.netty.channel.ChannelConfig.getWriteBufferLowWaterMark:()I
i2l
lsub
lstore 1
start local 1 1: lload 1
lconst_0
lcmp
ifle 5
2: aload 0
invokevirtual io.netty.channel.ChannelOutboundBuffer.isWritable:()Z
ifeq 3
lconst_0
goto 4
StackMap locals: long
StackMap stack:
3: lload 1
StackMap locals:
StackMap stack: long
4: lreturn
5: StackMap locals:
StackMap stack:
lconst_0
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lio/netty/channel/ChannelOutboundBuffer;
1 6 1 bytes J
public void forEachFlushedMessage(io.netty.channel.ChannelOutboundBuffer$MessageProcessor);
descriptor: (Lio/netty/channel/ChannelOutboundBuffer$MessageProcessor;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.NullPointerException
dup
ldc "processor"
invokespecial java.lang.NullPointerException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.flushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 2
start local 2 3: aload 2
ifnonnull 5
4: return
5: StackMap locals: io.netty.channel.ChannelOutboundBuffer$Entry
StackMap stack:
aload 2
getfield io.netty.channel.ChannelOutboundBuffer$Entry.cancelled:Z
ifne 8
6: aload 1
aload 2
getfield io.netty.channel.ChannelOutboundBuffer$Entry.msg:Ljava/lang/Object;
invokeinterface io.netty.channel.ChannelOutboundBuffer$MessageProcessor.processMessage:(Ljava/lang/Object;)Z
ifne 8
7: return
8: StackMap locals:
StackMap stack:
aload 2
getfield io.netty.channel.ChannelOutboundBuffer$Entry.next:Lio/netty/channel/ChannelOutboundBuffer$Entry;
astore 2
9: aload 0
aload 2
invokevirtual io.netty.channel.ChannelOutboundBuffer.isFlushedEntry:(Lio/netty/channel/ChannelOutboundBuffer$Entry;)Z
ifne 5
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 11 1 processor Lio/netty/channel/ChannelOutboundBuffer$MessageProcessor;
3 11 2 entry Lio/netty/channel/ChannelOutboundBuffer$Entry;
Exceptions:
throws java.lang.Exception
MethodParameters:
Name Flags
processor
private boolean isFlushedEntry(io.netty.channel.ChannelOutboundBuffer$Entry);
descriptor: (Lio/netty/channel/ChannelOutboundBuffer$Entry;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnull 1
aload 1
aload 0
getfield io.netty.channel.ChannelOutboundBuffer.unflushedEntry:Lio/netty/channel/ChannelOutboundBuffer$Entry;
if_acmpeq 1
iconst_1
ireturn
StackMap locals:
StackMap stack:
1: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lio/netty/channel/ChannelOutboundBuffer;
0 2 1 e Lio/netty/channel/ChannelOutboundBuffer$Entry;
MethodParameters:
Name Flags
e
}
SourceFile: "ChannelOutboundBuffer.java"
NestMembers:
io.netty.channel.ChannelOutboundBuffer$1 io.netty.channel.ChannelOutboundBuffer$2 io.netty.channel.ChannelOutboundBuffer$3 io.netty.channel.ChannelOutboundBuffer$Entry io.netty.channel.ChannelOutboundBuffer$Entry$1 io.netty.channel.ChannelOutboundBuffer$MessageProcessor
InnerClasses:
io.netty.channel.ChannelOutboundBuffer$1
io.netty.channel.ChannelOutboundBuffer$2
io.netty.channel.ChannelOutboundBuffer$3
final Entry = io.netty.channel.ChannelOutboundBuffer$Entry of io.netty.channel.ChannelOutboundBuffer
public abstract MessageProcessor = io.netty.channel.ChannelOutboundBuffer$MessageProcessor of io.netty.channel.ChannelOutboundBuffer