diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-03-06 19:23:11 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-03-06 19:23:11 +0000 |
commit | 24299c0eaaa88bf7338a7789fffc53a1ecc210d6 (patch) | |
tree | 21147a32811a83488ad20835d5efd97dc057ca74 | |
parent | 285cac0df84b28e4a98ca4e3250c9c7ddfcdd761 (diff) |
Use an interface that is more flexible.
3 files changed, 7 insertions, 6 deletions
diff --git a/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java b/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java index a70a2861cc8..ba2caaf3e91 100644 --- a/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java +++ b/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java @@ -26,8 +26,8 @@ public class LZ4PayloadCompressor { return compressor.compressUnconditionally(input); } - public void decompress(byte[] input, byte[] output) { - compressor.decompressUnconditionally(input, output); + public byte [] decompress(byte[] input, int uncompressedLen) { + return compressor.decompressUnconditionally(input, 0, uncompressedLen); } } diff --git a/config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java b/config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java index 88e8b21347f..13f9602f70c 100644 --- a/config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java +++ b/config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java @@ -60,8 +60,7 @@ public class Payload { public Payload withCompression(CompressionType requestedCompression) { CompressionType responseCompression = compressionInfo.getCompressionType(); if (requestedCompression == CompressionType.UNCOMPRESSED && responseCompression == CompressionType.LZ4) { - byte[] buffer = new byte[compressionInfo.getUncompressedSize()]; - compressor.decompress(data.getBytes(), buffer); + byte[] buffer = compressor.decompress(data.getBytes(), compressionInfo.getUncompressedSize()); Utf8Array data = new Utf8Array(buffer); CompressionInfo info = CompressionInfo.create(CompressionType.UNCOMPRESSED, compressionInfo.getUncompressedSize()); return Payload.from(data, info); diff --git a/vespajlib/src/main/java/com/yahoo/compress/Compressor.java b/vespajlib/src/main/java/com/yahoo/compress/Compressor.java index 77297ebcb50..bb1ca99c4ab 100644 --- a/vespajlib/src/main/java/com/yahoo/compress/Compressor.java +++ b/vespajlib/src/main/java/com/yahoo/compress/Compressor.java @@ -146,10 +146,12 @@ public class Compressor { public byte[] compressUnconditionally(byte[] input) { return getCompressor().compress(input); } - public void decompressUnconditionally(byte[] input, byte[] output) { + + public byte [] decompressUnconditionally(byte[] input, int srcOffset, int uncompressedLen) { if (input.length > 0) { - factory.safeDecompressor().decompress(input, output); + return factory.fastDecompressor().decompress(input, srcOffset, uncompressedLen); } + return new byte[0]; } public long warmup(double seconds) { |