final class io.netty.handler.codec.http.HpackHuffmanEncoder extends java.lang.Object
{
private final int[] codes;
private final byte[] lengths;
private final io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor encodedLengthProcessor;
private final io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor encodeProcessor;
void <init>()
{
byte[] v;
int[] v;
io.netty.handler.codec.http.HpackHuffmanEncoder v;
v := @this: io.netty.handler.codec.http.HpackHuffmanEncoder;
v = <io.netty.handler.codec.http.HpackUtil: int[] HUFFMAN_CODES>;
v = <io.netty.handler.codec.http.HpackUtil: byte[] HUFFMAN_CODE_LENGTHS>;
specialinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder: void <init>(int[],byte[])>(v, v);
return;
}
private void <init>(int[], byte[])
{
io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor v;
byte[] v;
io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor v;
int[] v;
io.netty.handler.codec.http.HpackHuffmanEncoder v;
v := @this: io.netty.handler.codec.http.HpackHuffmanEncoder;
v := @parameter: int[];
v := @parameter: byte[];
specialinvoke v.<java.lang.Object: void <init>()>();
v = new io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor;
specialinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor: void <init>(io.netty.handler.codec.http.HpackHuffmanEncoder)>(v);
v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor encodedLengthProcessor> = v;
v = new io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor;
specialinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor: void <init>(io.netty.handler.codec.http.HpackHuffmanEncoder)>(v);
v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor encodeProcessor> = v;
v.<io.netty.handler.codec.http.HpackHuffmanEncoder: int[] codes> = v;
v.<io.netty.handler.codec.http.HpackHuffmanEncoder: byte[] lengths> = v;
return;
}
public void encode(io.netty.buffer.ByteBuf, java.lang.CharSequence)
{
java.lang.Throwable v;
java.lang.CharSequence v;
java.lang.Exception v;
io.netty.handler.codec.http.HpackHuffmanEncoder v;
io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor v, v, v, v, v;
io.netty.buffer.ByteBuf v;
boolean v;
v := @this: io.netty.handler.codec.http.HpackHuffmanEncoder;
v := @parameter: io.netty.buffer.ByteBuf;
v := @parameter: java.lang.CharSequence;
staticinvoke <io.netty.util.internal.ObjectUtil: java.lang.Object checkNotNull(java.lang.Object,java.lang.String)>(v, "out");
v = v instanceof io.netty.util.AsciiString;
if v == 0 goto label;
label:
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor encodeProcessor>;
v.<io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor: io.netty.buffer.ByteBuf out> = v;
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor encodeProcessor>;
virtualinvoke v.<io.netty.util.AsciiString: int forEachByte(io.netty.util.ByteProcessor)>(v);
label:
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor encodeProcessor>;
virtualinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor: void end()>();
goto label;
label:
v := @caughtexception;
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
label:
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor encodeProcessor>;
virtualinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor: void end()>();
goto label;
label:
v := @caughtexception;
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor encodeProcessor>;
virtualinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder$EncodeProcessor: void end()>();
throw v;
label:
specialinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder: void encodeSlowPath(io.netty.buffer.ByteBuf,java.lang.CharSequence)>(v, v);
label:
return;
catch java.lang.Exception 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;
}
private void encodeSlowPath(io.netty.buffer.ByteBuf, java.lang.CharSequence)
{
byte[] v;
long v, v, v, v, v;
byte v;
io.netty.buffer.ByteBuf v;
int[] v;
int v, v, v, v, v, v;
java.lang.CharSequence v;
char v, v;
io.netty.handler.codec.http.HpackHuffmanEncoder v;
v := @this: io.netty.handler.codec.http.HpackHuffmanEncoder;
v := @parameter: io.netty.buffer.ByteBuf;
v := @parameter: java.lang.CharSequence;
v = 0L;
v = 0;
v = 0;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v >= v goto label;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 255;
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: int[] codes>;
v = v[v];
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: byte[] lengths>;
v = v[v];
v = v << v;
v = v | v;
v = v + v;
label:
if v < 8 goto label;
v = v - 8;
v = v >> v;
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf writeByte(int)>(v);
goto label;
label:
v = v + 1;
goto label;
label:
if v <= 0 goto label;
v = 8 - v;
v = v << v;
v = 255 >>> v;
v = v | v;
virtualinvoke v.<io.netty.buffer.ByteBuf: io.netty.buffer.ByteBuf writeByte(int)>(v);
label:
return;
}
int getEncodedLength(java.lang.CharSequence)
{
java.lang.CharSequence v;
java.lang.Exception v;
io.netty.handler.codec.http.HpackHuffmanEncoder v;
io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor v, v, v;
int v, v, v;
boolean v;
v := @this: io.netty.handler.codec.http.HpackHuffmanEncoder;
v := @parameter: java.lang.CharSequence;
v = v instanceof io.netty.util.AsciiString;
if v == 0 goto label;
label:
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor encodedLengthProcessor>;
virtualinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor: void reset()>();
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor encodedLengthProcessor>;
virtualinvoke v.<io.netty.util.AsciiString: int forEachByte(io.netty.util.ByteProcessor)>(v);
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor encodedLengthProcessor>;
v = virtualinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder$EncodedLengthProcessor: int length()>();
label:
return v;
label:
v := @caughtexception;
staticinvoke <io.netty.util.internal.PlatformDependent: void throwException(java.lang.Throwable)>(v);
v = (int) -1;
return v;
label:
v = specialinvoke v.<io.netty.handler.codec.http.HpackHuffmanEncoder: int getEncodedLengthSlowPath(java.lang.CharSequence)>(v);
return v;
catch java.lang.Exception from label to label with label;
}
private int getEncodedLengthSlowPath(java.lang.CharSequence)
{
byte[] v;
java.lang.CharSequence v;
char v, v;
long v, v, v;
io.netty.handler.codec.http.HpackHuffmanEncoder v;
byte v;
int v, v;
v := @this: io.netty.handler.codec.http.HpackHuffmanEncoder;
v := @parameter: java.lang.CharSequence;
v = 0L;
v = 0;
label:
v = interfaceinvoke v.<java.lang.CharSequence: int length()>();
if v >= v goto label;
v = v.<io.netty.handler.codec.http.HpackHuffmanEncoder: byte[] lengths>;
v = interfaceinvoke v.<java.lang.CharSequence: char charAt(int)>(v);
v = v & 255;
v = v[v];
v = v + v;
v = v + 1;
goto label;
label:
v = v + 7L;
v = v >> 3;
return v;
}
}