diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-03-06 21:26:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-06 21:26:47 +0100 |
commit | b241838f43794aa6a84df55a0f6e9e6877060021 (patch) | |
tree | 527acc5d2ee1e69b5903efef2d98841c6918882c | |
parent | 12f1508dd885cbcde8af6a919958c366c41b33fc (diff) | |
parent | a45d6e5d343a32ba8b2bcdbeac2c67e5f96e01a9 (diff) |
Merge pull request #12493 from vespa-engine/balder/use-a-more-flexible-interface
Use an interface that is more flexible.
4 files changed, 8 insertions, 8 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/config/src/test/java/com/yahoo/vespa/config/LZ4PayloadCompressorTest.java b/config/src/test/java/com/yahoo/vespa/config/LZ4PayloadCompressorTest.java index 635d6a96a7c..903b6f3b489 100644 --- a/config/src/test/java/com/yahoo/vespa/config/LZ4PayloadCompressorTest.java +++ b/config/src/test/java/com/yahoo/vespa/config/LZ4PayloadCompressorTest.java @@ -23,8 +23,7 @@ public class LZ4PayloadCompressorTest { LZ4PayloadCompressor compressor = new LZ4PayloadCompressor(); byte[] data = Utf8.toBytes(input); byte[] compressed = compressor.compress(data); - byte[] output = new byte[data.length]; - compressor.decompress(compressed, output); + byte[] output = compressor.decompress(compressed, data.length); assertThat(data, is(output)); } } 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) { |