final class io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState extends java.lang.Object implements io.netty.handler.codec.http.StreamByteDistributor$StreamState
{
private final io.netty.handler.codec.http.Http2Stream stream;
private final java.util.Deque pendingWriteQueue;
private int window;
private long pendingBytes;
private boolean markedWritable;
private boolean writing;
private boolean cancelled;
static final boolean $assertionsDisabled;
final io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0;
void <init>(io.netty.handler.codec.http.DefaultHttp2RemoteFlowController, io.netty.handler.codec.http.Http2Stream)
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
io.netty.handler.codec.http.Http2Stream v;
java.util.ArrayDeque v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController;
v := @parameter: io.netty.handler.codec.http.Http2Stream;
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0> = v;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.Http2Stream stream> = v;
v = new java.util.ArrayDeque;
specialinvoke v.<java.util.ArrayDeque: void <init>(int)>(2);
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: java.util.Deque pendingWriteQueue> = v;
return;
}
boolean isWritable()
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
byte v;
int v;
long v;
boolean v, v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v = virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int windowSize()>();
v = virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: long pendingBytes()>();
v = v cmp v;
if v <= 0 goto label;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean cancelled>;
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public io.netty.handler.codec.http.Http2Stream stream()
{
io.netty.handler.codec.http.Http2Stream v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.Http2Stream stream>;
return v;
}
boolean markedWritability()
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
boolean v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean markedWritable>;
return v;
}
void markedWritability(boolean)
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
boolean v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: boolean;
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean markedWritable> = v;
return;
}
public int windowSize()
{
int v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int window>;
return v;
}
void windowSize(int)
{
int v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: int;
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int window> = v;
return;
}
int writeAllocatedBytes(int)
{
boolean v, v, v, v, v, v, v, v;
io.netty.handler.codec.http.Http2Error v, v, v, v;
java.lang.Throwable v, v, v;
io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled v;
java.lang.AssertionError v;
java.util.Deque v;
io.netty.channel.ChannelHandlerContext v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: int;
v = v;
label:
v = <io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean writing>;
if v == 0 goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean writing> = 1;
v = 0;
label:
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean cancelled>;
if v != 0 goto label;
v = specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled peek()>();
if v == null goto label;
v = specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int writableWindow()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
if v > 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
if v > 0 goto label;
label:
v = 1;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
label:
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.channel.ChannelHandlerContext ctx>;
v = staticinvoke <java.lang.Math: int max(int,int)>(0, v);
interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: void write(io.netty.channel.ChannelHandlerContext,int)>(v, v);
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
if v != 0 goto label;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: java.util.Deque pendingWriteQueue>;
interfaceinvoke v.<java.util.Deque: java.lang.Object remove()>();
interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: void writeComplete()>();
label:
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
v = v - v;
v = v - v;
goto label;
label:
v := @caughtexception;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
v = v - v;
v = v - v;
throw v;
label:
if v != 0 goto label;
label:
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean writing> = 0;
v = v - v;
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementPendingBytes(int,boolean)>(v, 0);
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementFlowControlWindow(int)>(v);
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean cancelled>;
if v == 0 goto label;
v = <io.netty.handler.codec.http.Http2Error: io.netty.handler.codec.http.Http2Error INTERNAL_ERROR>;
virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void cancel(io.netty.handler.codec.http.Http2Error,java.lang.Throwable)>(v, null);
label:
v = (int) -1;
return v;
label:
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean writing> = 0;
v = v - v;
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementPendingBytes(int,boolean)>(v, 0);
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementFlowControlWindow(int)>(v);
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean cancelled>;
if v == 0 goto label;
v = <io.netty.handler.codec.http.Http2Error: io.netty.handler.codec.http.Http2Error INTERNAL_ERROR>;
virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void cancel(io.netty.handler.codec.http.Http2Error,java.lang.Throwable)>(v, null);
goto label;
label:
v := @caughtexception;
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean cancelled> = 1;
label:
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean writing> = 0;
v = v - v;
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementPendingBytes(int,boolean)>(v, 0);
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementFlowControlWindow(int)>(v);
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean cancelled>;
if v == 0 goto label;
v = <io.netty.handler.codec.http.Http2Error: io.netty.handler.codec.http.Http2Error INTERNAL_ERROR>;
virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void cancel(io.netty.handler.codec.http.Http2Error,java.lang.Throwable)>(v, v);
goto label;
label:
v := @caughtexception;
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean writing> = 0;
v = v - v;
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementPendingBytes(int,boolean)>(v, 0);
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementFlowControlWindow(int)>(v);
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean cancelled>;
if v == 0 goto label;
v = <io.netty.handler.codec.http.Http2Error: io.netty.handler.codec.http.Http2Error INTERNAL_ERROR>;
virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void cancel(io.netty.handler.codec.http.Http2Error,java.lang.Throwable)>(v, null);
label:
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
catch java.lang.Throwable from label to label with label;
}
int incrementStreamWindow(int) throws io.netty.handler.codec.http.Http2Exception
{
java.lang.Object[] v;
java.lang.Integer v;
io.netty.handler.codec.http.StreamByteDistributor v;
io.netty.handler.codec.http.Http2Exception v;
int v, v, v, v, v, v, v, v;
io.netty.handler.codec.http.Http2Stream v, v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
io.netty.handler.codec.http.Http2Error v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: int;
if v <= 0 goto label;
v = 2147483647 - v;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int window>;
if v >= v goto label;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.Http2Stream stream>;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2Stream: int id()>();
v = <io.netty.handler.codec.http.Http2Error: io.netty.handler.codec.http.Http2Error FLOW_CONTROL_ERROR>;
v = newarray (java.lang.Object)[1];
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.Http2Stream stream>;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2Stream: int id()>();
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v = staticinvoke <io.netty.handler.codec.http.Http2Exception: io.netty.handler.codec.http.Http2Exception streamError(int,io.netty.handler.codec.http.Http2Error,java.lang.String,java.lang.Object[])>(v, v, "Window size overflow for stream: %d", v);
throw v;
label:
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int window>;
v = v + v;
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int window> = v;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.handler.codec.http.StreamByteDistributor streamByteDistributor>;
interfaceinvoke v.<io.netty.handler.codec.http.StreamByteDistributor: void updateStreamableBytes(io.netty.handler.codec.http.StreamByteDistributor$StreamState)>(v);
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int window>;
return v;
}
private int writableWindow()
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
int v, v, v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int window>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: int connectionWindowSize()>();
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
return v;
}
public long pendingBytes()
{
long v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: long pendingBytes>;
return v;
}
void enqueueFrame(io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled)
{
io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
java.util.Deque v;
io.netty.channel.ChannelHandlerContext v;
int v, v, v;
java.lang.Object v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v;
boolean v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: java.util.Deque pendingWriteQueue>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object peekLast()>();
if v != null goto label;
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void enqueueFrameWithoutMerge(io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled)>(v);
return;
label:
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.channel.ChannelHandlerContext ctx>;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: boolean merge(io.netty.channel.ChannelHandlerContext,io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled)>(v, v);
if v == 0 goto label;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
v = v - v;
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void incrementPendingBytes(int,boolean)>(v, 1);
return;
label:
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void enqueueFrameWithoutMerge(io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled)>(v);
return;
}
private void enqueueFrameWithoutMerge(io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled)
{
io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
int v;
java.util.Deque v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: java.util.Deque pendingWriteQueue>;
interfaceinvoke v.<java.util.Deque: boolean offer(java.lang.Object)>(v);
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void incrementPendingBytes(int,boolean)>(v, 1);
return;
}
public boolean hasFrame()
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
java.util.Deque v;
boolean v, v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: java.util.Deque pendingWriteQueue>;
v = interfaceinvoke v.<java.util.Deque: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
private io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled peek()
{
java.lang.Object v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
java.util.Deque v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: java.util.Deque pendingWriteQueue>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object peek()>();
return v;
}
void cancel(io.netty.handler.codec.http.Http2Error, java.lang.Throwable)
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$WritabilityMonitor v;
java.lang.Throwable v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
java.lang.Object[] v;
java.util.Deque v, v;
io.netty.handler.codec.http.StreamByteDistributor v;
io.netty.handler.codec.http.Http2Exception v;
int v;
io.netty.handler.codec.http.Http2Error v;
io.netty.handler.codec.http.Http2Stream v;
java.lang.Object v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v, v;
boolean v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: io.netty.handler.codec.http.Http2Error;
v := @parameter: java.lang.Throwable;
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean cancelled> = 1;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean writing>;
if v == 0 goto label;
return;
label:
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: java.util.Deque pendingWriteQueue>;
v = interfaceinvoke v.<java.util.Deque: java.lang.Object poll()>();
if v == null goto label;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.Http2Stream stream>;
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2Stream: int id()>();
v = newarray (java.lang.Object)[0];
v = staticinvoke <io.netty.handler.codec.http.Http2Exception: io.netty.handler.codec.http.Http2Exception streamError(int,io.netty.handler.codec.http.Http2Error,java.lang.Throwable,java.lang.String,java.lang.Object[])>(v, v, v, "Stream closed before write could take place", v);
label:
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void writeError(io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled,io.netty.handler.codec.http.Http2Exception)>(v, v);
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: java.util.Deque pendingWriteQueue>;
interfaceinvoke v.<java.util.Deque: java.lang.Object poll()>();
goto label;
label:
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.handler.codec.http.StreamByteDistributor streamByteDistributor>;
interfaceinvoke v.<io.netty.handler.codec.http.StreamByteDistributor: void updateStreamableBytes(io.netty.handler.codec.http.StreamByteDistributor$StreamState)>(v);
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$WritabilityMonitor monitor>;
virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$WritabilityMonitor: void stateCancelled(io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState)>(v);
return;
}
private void incrementPendingBytes(int, boolean)
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$WritabilityMonitor v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
long v, v;
io.netty.handler.codec.http.StreamByteDistributor v;
int v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v, v;
boolean v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: int;
v := @parameter: boolean;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: long pendingBytes>;
v = v + v;
v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: long pendingBytes> = v;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$WritabilityMonitor monitor>;
virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$WritabilityMonitor: void incrementPendingBytes(int)>(v);
if v == 0 goto label;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.handler.codec.http.StreamByteDistributor streamByteDistributor>;
interfaceinvoke v.<io.netty.handler.codec.http.StreamByteDistributor: void updateStreamableBytes(io.netty.handler.codec.http.StreamByteDistributor$StreamState)>(v);
label:
return;
}
private void decrementPendingBytes(int, boolean)
{
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
int v, v;
boolean v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: int;
v := @parameter: boolean;
v = neg v;
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void incrementPendingBytes(int,boolean)>(v, v);
return;
}
private void decrementFlowControlWindow(int)
{
java.lang.IllegalStateException v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v, v;
io.netty.handler.codec.http.Http2Exception v;
int v, v;
java.lang.String v, v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: int;
label:
v = neg v;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState connectionState>;
virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int incrementStreamWindow(int)>(v);
virtualinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: int incrementStreamWindow(int)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.lang.IllegalStateException;
v = virtualinvoke v.<io.netty.handler.codec.http.Http2Exception: java.lang.String getMessage()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Invalid window state when writing frame: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
label:
return;
catch io.netty.handler.codec.http.Http2Exception from label to label with label;
}
private void writeError(io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled, io.netty.handler.codec.http.Http2Exception)
{
io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState v;
java.lang.AssertionError v;
io.netty.channel.ChannelHandlerContext v, v;
io.netty.handler.codec.http.Http2Exception v;
int v;
io.netty.handler.codec.http.DefaultHttp2RemoteFlowController v, v;
boolean v;
v := @this: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState;
v := @parameter: io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled;
v := @parameter: io.netty.handler.codec.http.Http2Exception;
v = <io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean $assertionsDisabled>;
if v != 0 goto label;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.channel.ChannelHandlerContext ctx>;
if v != null goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: int size()>();
specialinvoke v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: void decrementPendingBytes(int,boolean)>(v, 1);
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: io.netty.handler.codec.http.DefaultHttp2RemoteFlowController this$0>;
v = v.<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController: io.netty.channel.ChannelHandlerContext ctx>;
interfaceinvoke v.<io.netty.handler.codec.http.Http2RemoteFlowController$FlowControlled: void error(io.netty.channel.ChannelHandlerContext,java.lang.Throwable)>(v, v);
return;
}
static void <clinit>()
{
java.lang.Class v;
boolean v, v;
v = class "Lio/netty/handler/codec/http2/DefaultHttp2RemoteFlowController;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.handler.codec.http.DefaultHttp2RemoteFlowController$FlowState: boolean $assertionsDisabled> = v;
return;
}
}