aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/utils/zlib/ZLibOutputStream.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/eu/siacs/conversations/utils/zlib/ZLibOutputStream.java')
-rw-r--r--src/eu/siacs/conversations/utils/zlib/ZLibOutputStream.java15
1 files changed, 5 insertions, 10 deletions
diff --git a/src/eu/siacs/conversations/utils/zlib/ZLibOutputStream.java b/src/eu/siacs/conversations/utils/zlib/ZLibOutputStream.java
index f2bff9fd..cc64a5e6 100644
--- a/src/eu/siacs/conversations/utils/zlib/ZLibOutputStream.java
+++ b/src/eu/siacs/conversations/utils/zlib/ZLibOutputStream.java
@@ -63,18 +63,13 @@ public class ZLibOutputStream extends DeflaterOutputStream {
super.flush();
return;
}
- int count = 0;
- if (!def.needsInput()) {
- do {
- count = def.deflate(buf, 0, buf.length);
- out.write(buf, 0, count);
- } while (count > 0);
- out.flush();
- }
try {
+ int count = 0;
do {
- count = (Integer) method.invoke(def, buf, 0, buf.length, 2);
- out.write(buf, 0, count);
+ count = (Integer) method.invoke(def, buf, 0, buf.length, 3);
+ if (count > 0) {
+ out.write(buf, 0, count);
+ }
} while (count > 0);
} catch (IllegalArgumentException e) {
throw new IOException("Can't flush");