Files
rr3-apk/decompiled/sources/okio/DeflaterSink.java
Daniel Elliott f9d20bb3fc Add decompiled APK source code (JADX)
- 28,932 files
- Full Java source code
- Smali files
- Resources

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-02-18 14:52:23 -08:00

124 lines
3.5 KiB
Java

package okio;
import java.util.zip.Deflater;
/* loaded from: classes5.dex */
public final class DeflaterSink implements Sink {
public boolean closed;
public final Deflater deflater;
public final BufferedSink sink;
public DeflaterSink(BufferedSink bufferedSink, Deflater deflater) {
if (bufferedSink == null) {
throw new IllegalArgumentException("source == null");
}
if (deflater == null) {
throw new IllegalArgumentException("inflater == null");
}
this.sink = bufferedSink;
this.deflater = deflater;
}
@Override // okio.Sink
public void write(Buffer buffer, long j) {
Util.checkOffsetAndCount(buffer.size, 0L, j);
while (j > 0) {
Segment segment = buffer.head;
int min = (int) Math.min(j, segment.limit - segment.pos);
this.deflater.setInput(segment.data, segment.pos, min);
deflate(false);
long j2 = min;
buffer.size -= j2;
int i = segment.pos + min;
segment.pos = i;
if (i == segment.limit) {
buffer.head = segment.pop();
SegmentPool.recycle(segment);
}
j -= j2;
}
}
public final void deflate(boolean z) {
Segment writableSegment;
int deflate;
Buffer buffer = this.sink.buffer();
while (true) {
writableSegment = buffer.writableSegment(1);
if (z) {
Deflater deflater = this.deflater;
byte[] bArr = writableSegment.data;
int i = writableSegment.limit;
deflate = deflater.deflate(bArr, i, 8192 - i, 2);
} else {
Deflater deflater2 = this.deflater;
byte[] bArr2 = writableSegment.data;
int i2 = writableSegment.limit;
deflate = deflater2.deflate(bArr2, i2, 8192 - i2);
}
if (deflate > 0) {
writableSegment.limit += deflate;
buffer.size += deflate;
this.sink.emitCompleteSegments();
} else if (this.deflater.needsInput()) {
break;
}
}
if (writableSegment.pos == writableSegment.limit) {
buffer.head = writableSegment.pop();
SegmentPool.recycle(writableSegment);
}
}
@Override // okio.Sink, java.io.Flushable
public void flush() {
deflate(true);
this.sink.flush();
}
public void finishDeflate() {
this.deflater.finish();
deflate(false);
}
@Override // okio.Sink, java.io.Closeable, java.lang.AutoCloseable
public void close() {
if (this.closed) {
return;
}
try {
finishDeflate();
th = null;
} catch (Throwable th) {
th = th;
}
try {
this.deflater.end();
} catch (Throwable th2) {
if (th == null) {
th = th2;
}
}
try {
this.sink.close();
} catch (Throwable th3) {
if (th == null) {
th = th3;
}
}
this.closed = true;
if (th != null) {
Util.sneakyRethrow(th);
}
}
@Override // okio.Sink
public Timeout timeout() {
return this.sink.timeout();
}
public String toString() {
return "DeflaterSink(" + this.sink + ")";
}
}