final class io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData extends io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledBase
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData
  super_class: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledBase
{
  private final io.netty.channel.CoalescingBufferQueue queue;
    descriptor: Lio/netty/channel/CoalescingBufferQueue;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private int dataSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  final io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder this$0;
    descriptor: Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder, io.netty.handler.codec.http2.Http2Stream, io.netty.buffer.ByteBuf, int, boolean, io.netty.channel.ChannelPromise);
    descriptor: (Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;Lio/netty/handler/codec/http2/Http2Stream;Lio/netty/buffer/ByteBuf;IZLio/netty/channel/ChannelPromise;)V
    flags: (0x0000) 
    Code:
      stack=6, locals=7, args_size=7
        start local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
        start local 2 // io.netty.handler.codec.http2.Http2Stream stream
        start local 3 // io.netty.buffer.ByteBuf buf
        start local 4 // int padding
        start local 5 // boolean endOfStream
        start local 6 // io.netty.channel.ChannelPromise promise
         0: .line 377
            aload 0 /* this */
            aload 1
            putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.this$0:Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;
         1: .line 378
            aload 0 /* this */
            aload 1
            aload 2 /* stream */
            iload 4 /* padding */
            iload 5 /* endOfStream */
            aload 6 /* promise */
            invokespecial io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledBase.<init>:(Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;Lio/netty/handler/codec/http2/Http2Stream;IZLio/netty/channel/ChannelPromise;)V
         2: .line 379
            aload 0 /* this */
            new io.netty.channel.CoalescingBufferQueue
            dup
            aload 6 /* promise */
            invokeinterface io.netty.channel.ChannelPromise.channel:()Lio/netty/channel/Channel;
            invokespecial io.netty.channel.CoalescingBufferQueue.<init>:(Lio/netty/channel/Channel;)V
            putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
         3: .line 380
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            aload 3 /* buf */
            aload 6 /* promise */
            invokevirtual io.netty.channel.CoalescingBufferQueue.add:(Lio/netty/buffer/ByteBuf;Lio/netty/channel/ChannelPromise;)V
         4: .line 381
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            invokevirtual io.netty.channel.CoalescingBufferQueue.readableBytes:()I
            putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.dataSize:I
         5: .line 382
            return
        end local 6 // io.netty.channel.ChannelPromise promise
        end local 5 // boolean endOfStream
        end local 4 // int padding
        end local 3 // io.netty.buffer.ByteBuf buf
        end local 2 // io.netty.handler.codec.http2.Http2Stream stream
        end local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    6     0         this  Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
            0    6     2       stream  Lio/netty/handler/codec/http2/Http2Stream;
            0    6     3          buf  Lio/netty/buffer/ByteBuf;
            0    6     4      padding  I
            0    6     5  endOfStream  Z
            0    6     6      promise  Lio/netty/channel/ChannelPromise;
    MethodParameters:
             Name  Flags
      this$0       final
      stream       
      buf          
      padding      
      endOfStream  
      promise      

  public int size();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
         0: .line 386
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.dataSize:I
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
            iadd
            ireturn
        end local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;

  public void error(io.netty.channel.ChannelHandlerContext, java.lang.Throwable);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Ljava/lang/Throwable;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // java.lang.Throwable cause
         0: .line 391
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            aload 2 /* cause */
            invokevirtual io.netty.channel.CoalescingBufferQueue.releaseAndFailAll:(Ljava/lang/Throwable;)V
         1: .line 394
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.this$0:Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder.lifecycleManager:Lio/netty/handler/codec/http2/Http2LifecycleManager;
            aload 1 /* ctx */
            iconst_1
            aload 2 /* cause */
            invokeinterface io.netty.handler.codec.http2.Http2LifecycleManager.onError:(Lio/netty/channel/ChannelHandlerContext;ZLjava/lang/Throwable;)V
         2: .line 395
            return
        end local 2 // java.lang.Throwable cause
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
            0    3     1    ctx  Lio/netty/channel/ChannelHandlerContext;
            0    3     2  cause  Ljava/lang/Throwable;
    MethodParameters:
       Name  Flags
      ctx    
      cause  

  public void write(io.netty.channel.ChannelHandlerContext, int);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=8, args_size=3
        start local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // int allowedBytes
         0: .line 399
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            invokevirtual io.netty.channel.CoalescingBufferQueue.readableBytes:()I
            istore 3 /* queuedData */
        start local 3 // int queuedData
         1: .line 400
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.endOfStream:Z
            ifne 8
         2: .line 401
            iload 3 /* queuedData */
            ifne 6
         3: .line 405
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
            astore 4 /* writePromise */
        start local 4 // io.netty.channel.ChannelPromise writePromise
         4: .line 406
            aload 1 /* ctx */
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            iconst_0
            aload 4 /* writePromise */
            invokevirtual io.netty.channel.CoalescingBufferQueue.remove:(ILio/netty/channel/ChannelPromise;)Lio/netty/buffer/ByteBuf;
            aload 4 /* writePromise */
            invokeinterface io.netty.channel.ChannelHandlerContext.write:(Ljava/lang/Object;Lio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
         5: .line 407
            return
        end local 4 // io.netty.channel.ChannelPromise writePromise
         6: .line 410
      StackMap locals: int
      StackMap stack:
            iload 2 /* allowedBytes */
            ifne 8
         7: .line 411
            return
         8: .line 416
      StackMap locals:
      StackMap stack:
            iload 3 /* queuedData */
            iload 2 /* allowedBytes */
            invokestatic java.lang.Math.min:(II)I
            istore 4 /* writableData */
        start local 4 // int writableData
         9: .line 417
            aload 1 /* ctx */
            invokeinterface io.netty.channel.ChannelHandlerContext.newPromise:()Lio/netty/channel/ChannelPromise;
            aload 0 /* this */
            invokeinterface io.netty.channel.ChannelPromise.addListener:(Lio/netty/util/concurrent/GenericFutureListener;)Lio/netty/channel/ChannelPromise;
            astore 5 /* writePromise */
        start local 5 // io.netty.channel.ChannelPromise writePromise
        10: .line 418
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            iload 4 /* writableData */
            aload 5 /* writePromise */
            invokevirtual io.netty.channel.CoalescingBufferQueue.remove:(ILio/netty/channel/ChannelPromise;)Lio/netty/buffer/ByteBuf;
            astore 6 /* toWrite */
        start local 6 // io.netty.buffer.ByteBuf toWrite
        11: .line 419
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            invokevirtual io.netty.channel.CoalescingBufferQueue.readableBytes:()I
            putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.dataSize:I
        12: .line 422
            iload 2 /* allowedBytes */
            iload 4 /* writableData */
            isub
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
            invokestatic java.lang.Math.min:(II)I
            istore 7 /* writablePadding */
        start local 7 // int writablePadding
        13: .line 423
            aload 0 /* this */
            dup
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
            iload 7 /* writablePadding */
            isub
            putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
        14: .line 426
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.this$0:Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder;
            invokevirtual io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder.frameWriter:()Lio/netty/handler/codec/http2/Http2FrameWriter;
            aload 1 /* ctx */
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.stream:Lio/netty/handler/codec/http2/Http2Stream;
            invokeinterface io.netty.handler.codec.http2.Http2Stream.id:()I
            aload 6 /* toWrite */
            iload 7 /* writablePadding */
        15: .line 427
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.endOfStream:Z
            ifeq 16
            aload 0 /* this */
            invokevirtual io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.size:()I
            ifne 16
            iconst_1
            goto 17
      StackMap locals: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData io.netty.channel.ChannelHandlerContext int int int io.netty.channel.ChannelPromise io.netty.buffer.ByteBuf int
      StackMap stack: io.netty.handler.codec.http2.Http2FrameWriter io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf int
        16: iconst_0
      StackMap locals: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData io.netty.channel.ChannelHandlerContext int int int io.netty.channel.ChannelPromise io.netty.buffer.ByteBuf int
      StackMap stack: io.netty.handler.codec.http2.Http2FrameWriter io.netty.channel.ChannelHandlerContext int io.netty.buffer.ByteBuf int int
        17: aload 5 /* writePromise */
        18: .line 426
            invokeinterface io.netty.handler.codec.http2.Http2FrameWriter.writeData:(Lio/netty/channel/ChannelHandlerContext;ILio/netty/buffer/ByteBuf;IZLio/netty/channel/ChannelPromise;)Lio/netty/channel/ChannelFuture;
            pop
        19: .line 428
            return
        end local 7 // int writablePadding
        end local 6 // io.netty.buffer.ByteBuf toWrite
        end local 5 // io.netty.channel.ChannelPromise writePromise
        end local 4 // int writableData
        end local 3 // int queuedData
        end local 2 // int allowedBytes
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   20     0             this  Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
            0   20     1              ctx  Lio/netty/channel/ChannelHandlerContext;
            0   20     2     allowedBytes  I
            1   20     3       queuedData  I
            4    6     4     writePromise  Lio/netty/channel/ChannelPromise;
            9   20     4     writableData  I
           10   20     5     writePromise  Lio/netty/channel/ChannelPromise;
           11   20     6          toWrite  Lio/netty/buffer/ByteBuf;
           13   20     7  writablePadding  I
    MethodParameters:
              Name  Flags
      ctx           
      allowedBytes  

  public boolean merge(io.netty.channel.ChannelHandlerContext, io.netty.handler.codec.http2.Http2RemoteFlowController$FlowControlled);
    descriptor: (Lio/netty/channel/ChannelHandlerContext;Lio/netty/handler/codec/http2/Http2RemoteFlowController$FlowControlled;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=3
        start local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
        start local 1 // io.netty.channel.ChannelHandlerContext ctx
        start local 2 // io.netty.handler.codec.http2.Http2RemoteFlowController$FlowControlled next
         0: .line 433
            ldc Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
            aload 2 /* next */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpne 3
         1: .line 434
            ldc 2147483647
            aload 2 /* next */
            checkcast io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData
            dup
            astore 3 /* nextData */
        start local 3 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData nextData
         2: invokevirtual io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.size:()I
            isub
            aload 0 /* this */
            invokevirtual io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.size:()I
            if_icmpge 4
        end local 3 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData nextData
         3: .line 435
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        start local 3 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData nextData
         4: .line 437
      StackMap locals: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData
      StackMap stack:
            aload 3 /* nextData */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            invokevirtual io.netty.channel.CoalescingBufferQueue.copyTo:(Lio/netty/channel/AbstractCoalescingBufferQueue;)V
         5: .line 438
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.queue:Lio/netty/channel/CoalescingBufferQueue;
            invokevirtual io.netty.channel.CoalescingBufferQueue.readableBytes:()I
            putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.dataSize:I
         6: .line 440
            aload 0 /* this */
            aload 0 /* this */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
            aload 3 /* nextData */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
            invokestatic java.lang.Math.max:(II)I
            putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.padding:I
         7: .line 441
            aload 0 /* this */
            aload 3 /* nextData */
            getfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.endOfStream:Z
            putfield io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData.endOfStream:Z
         8: .line 442
            iconst_1
            ireturn
        end local 3 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData nextData
        end local 2 // io.netty.handler.codec.http2.Http2RemoteFlowController$FlowControlled next
        end local 1 // io.netty.channel.ChannelHandlerContext ctx
        end local 0 // io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
            0    9     1       ctx  Lio/netty/channel/ChannelHandlerContext;
            0    9     2      next  Lio/netty/handler/codec/http2/Http2RemoteFlowController$FlowControlled;
            2    3     3  nextData  Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
            4    9     3  nextData  Lio/netty/handler/codec/http2/DefaultHttp2ConnectionEncoder$FlowControlledData;
    MethodParameters:
      Name  Flags
      ctx   
      next  
}
SourceFile: "DefaultHttp2ConnectionEncoder.java"
NestHost: io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder
InnerClasses:
  public abstract FlowControlledBase = io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledBase of io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder
  private final FlowControlledData = io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder$FlowControlledData of io.netty.handler.codec.http2.DefaultHttp2ConnectionEncoder
  public abstract FlowControlled = io.netty.handler.codec.http2.Http2RemoteFlowController$FlowControlled of io.netty.handler.codec.http2.Http2RemoteFlowController