public final class okio.DeflaterSink extends java.lang.Object implements okio.Sink
{
private final okio.BufferedSink sink;
private final java.util.zip.Deflater deflater;
private boolean closed;
public void <init>(okio.Sink, java.util.zip.Deflater)
{
okio.BufferedSink v;
java.util.zip.Deflater v;
okio.DeflaterSink v;
okio.Sink v;
v := @this: okio.DeflaterSink;
v := @parameter: okio.Sink;
v := @parameter: java.util.zip.Deflater;
v = staticinvoke <okio.Okio: okio.BufferedSink buffer(okio.Sink)>(v);
specialinvoke v.<okio.DeflaterSink: void <init>(okio.BufferedSink,java.util.zip.Deflater)>(v, v);
return;
}
void <init>(okio.BufferedSink, java.util.zip.Deflater)
{
okio.BufferedSink v;
java.util.zip.Deflater v;
java.lang.IllegalArgumentException v, v;
okio.DeflaterSink v;
v := @this: okio.DeflaterSink;
v := @parameter: okio.BufferedSink;
v := @parameter: java.util.zip.Deflater;
specialinvoke v.<java.lang.Object: void <init>()>();
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("source == null");
throw v;
label:
if v != null goto label;
v = new java.lang.IllegalArgumentException;
specialinvoke v.<java.lang.IllegalArgumentException: void <init>(java.lang.String)>("inflater == null");
throw v;
label:
v.<okio.DeflaterSink: okio.BufferedSink sink> = v;
v.<okio.DeflaterSink: java.util.zip.Deflater deflater> = v;
return;
}
public void write(okio.Buffer, long) throws java.io.IOException
{
byte[] v;
long v, v, v, v, v;
byte v;
int v, v, v, v, v, v, v, v, v;
okio.Segment v, v;
okio.Buffer v;
java.util.zip.Deflater v;
okio.DeflaterSink v;
v := @this: okio.DeflaterSink;
v := @parameter: okio.Buffer;
v := @parameter: long;
v = v.<okio.Buffer: long size>;
staticinvoke <okio.Util: void checkOffsetAndCount(long,long,long)>(v, 0L, v);
label:
v = v cmp 0L;
if v <= 0 goto label;
v = v.<okio.Buffer: okio.Segment head>;
v = v.<okio.Segment: int limit>;
v = v.<okio.Segment: int pos>;
v = v - v;
v = staticinvoke <java.lang.Math: long min(long,long)>(v, v);
v = v.<okio.DeflaterSink: java.util.zip.Deflater deflater>;
v = v.<okio.Segment: byte[] data>;
v = v.<okio.Segment: int pos>;
virtualinvoke v.<java.util.zip.Deflater: void setInput(byte[],int,int)>(v, v, v);
specialinvoke v.<okio.DeflaterSink: void deflate(boolean)>(0);
v = v.<okio.Buffer: long size>;
v = v - v;
v.<okio.Buffer: long size> = v;
v = v.<okio.Segment: int pos>;
v = v + v;
v.<okio.Segment: int pos> = v;
v = v.<okio.Segment: int pos>;
v = v.<okio.Segment: int limit>;
if v != v goto label;
v = virtualinvoke v.<okio.Segment: okio.Segment pop()>();
v.<okio.Buffer: okio.Segment head> = v;
staticinvoke <okio.SegmentPool: void recycle(okio.Segment)>(v);
label:
v = v - v;
goto label;
label:
return;
}
private void deflate(boolean) throws java.io.IOException
{
byte[] v, v;
long v, v;
okio.BufferedSink v, v;
int v, v, v, v, v, v, v, v, v, v, v;
okio.Segment v, v;
boolean v, v;
okio.Buffer v;
java.util.zip.Deflater v, v, v;
okio.DeflaterSink v;
v := @this: okio.DeflaterSink;
v := @parameter: boolean;
v = v.<okio.DeflaterSink: okio.BufferedSink sink>;
v = interfaceinvoke v.<okio.BufferedSink: okio.Buffer buffer()>();
label:
v = virtualinvoke v.<okio.Buffer: okio.Segment writableSegment(int)>(1);
if v == 0 goto label;
v = v.<okio.DeflaterSink: java.util.zip.Deflater deflater>;
v = v.<okio.Segment: byte[] data>;
v = v.<okio.Segment: int limit>;
v = v.<okio.Segment: int limit>;
v = 8192 - v;
v = virtualinvoke v.<java.util.zip.Deflater: int deflate(byte[],int,int,int)>(v, v, v, 2);
goto label;
label:
v = v.<okio.DeflaterSink: java.util.zip.Deflater deflater>;
v = v.<okio.Segment: byte[] data>;
v = v.<okio.Segment: int limit>;
v = v.<okio.Segment: int limit>;
v = 8192 - v;
v = virtualinvoke v.<java.util.zip.Deflater: int deflate(byte[],int,int)>(v, v, v);
label:
if v <= 0 goto label;
v = v.<okio.Segment: int limit>;
v = v + v;
v.<okio.Segment: int limit> = v;
v = v.<okio.Buffer: long size>;
v = v + v;
v.<okio.Buffer: long size> = v;
v = v.<okio.DeflaterSink: okio.BufferedSink sink>;
interfaceinvoke v.<okio.BufferedSink: okio.BufferedSink emitCompleteSegments()>();
goto label;
label:
v = v.<okio.DeflaterSink: java.util.zip.Deflater deflater>;
v = virtualinvoke v.<java.util.zip.Deflater: boolean needsInput()>();
if v == 0 goto label;
v = v.<okio.Segment: int pos>;
v = v.<okio.Segment: int limit>;
if v != v goto label;
v = virtualinvoke v.<okio.Segment: okio.Segment pop()>();
v.<okio.Buffer: okio.Segment head> = v;
staticinvoke <okio.SegmentPool: void recycle(okio.Segment)>(v);
label:
return;
}
public void flush() throws java.io.IOException
{
okio.BufferedSink v;
okio.DeflaterSink v;
v := @this: okio.DeflaterSink;
specialinvoke v.<okio.DeflaterSink: void deflate(boolean)>(1);
v = v.<okio.DeflaterSink: okio.BufferedSink sink>;
interfaceinvoke v.<okio.BufferedSink: void flush()>();
return;
}
void finishDeflate() throws java.io.IOException
{
java.util.zip.Deflater v;
okio.DeflaterSink v;
v := @this: okio.DeflaterSink;
v = v.<okio.DeflaterSink: java.util.zip.Deflater deflater>;
virtualinvoke v.<java.util.zip.Deflater: void finish()>();
specialinvoke v.<okio.DeflaterSink: void deflate(boolean)>(0);
return;
}
public void close() throws java.io.IOException
{
java.lang.Throwable v, v, v, v;
java.util.zip.Deflater v;
okio.DeflaterSink v;
okio.BufferedSink v;
boolean v;
v := @this: okio.DeflaterSink;
v = v.<okio.DeflaterSink: boolean closed>;
if v == 0 goto label;
return;
label:
v = null;
label:
virtualinvoke v.<okio.DeflaterSink: void finishDeflate()>();
label:
goto label;
label:
v := @caughtexception;
v = v;
label:
v = v.<okio.DeflaterSink: java.util.zip.Deflater deflater>;
virtualinvoke v.<java.util.zip.Deflater: void end()>();
label:
goto label;
label:
v := @caughtexception;
if v != null goto label;
v = v;
label:
v = v.<okio.DeflaterSink: okio.BufferedSink sink>;
interfaceinvoke v.<okio.BufferedSink: void close()>();
label:
goto label;
label:
v := @caughtexception;
if v != null goto label;
v = v;
label:
v.<okio.DeflaterSink: boolean closed> = 1;
if v == null goto label;
staticinvoke <okio.Util: void sneakyRethrow(java.lang.Throwable)>(v);
label:
return;
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;
}
public okio.Timeout timeout()
{
okio.Timeout v;
okio.BufferedSink v;
okio.DeflaterSink v;
v := @this: okio.DeflaterSink;
v = v.<okio.DeflaterSink: okio.BufferedSink sink>;
v = interfaceinvoke v.<okio.BufferedSink: okio.Timeout timeout()>();
return v;
}
public java.lang.String toString()
{
java.lang.String v;
okio.BufferedSink v;
okio.DeflaterSink v;
v := @this: okio.DeflaterSink;
v = v.<okio.DeflaterSink: okio.BufferedSink sink>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (okio.BufferedSink)>(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[])>("DeflaterSink(\u)");
return v;
}
}