summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-06 21:26:47 +0100
committerGitHub <noreply@github.com>2020-03-06 21:26:47 +0100
commitb241838f43794aa6a84df55a0f6e9e6877060021 (patch)
tree527acc5d2ee1e69b5903efef2d98841c6918882c
parent12f1508dd885cbcde8af6a919958c366c41b33fc (diff)
parenta45d6e5d343a32ba8b2bcdbeac2c67e5f96e01a9 (diff)
Merge pull request #12493 from vespa-engine/balder/use-a-more-flexible-interface
Use an interface that is more flexible.
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java4
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java3
-rw-r--r--config/src/test/java/com/yahoo/vespa/config/LZ4PayloadCompressorTest.java3
-rw-r--r--vespajlib/src/main/java/com/yahoo/compress/Compressor.java6
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) {