aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2017-01-18 11:40:10 +0100
committerJon Bratseth <bratseth@yahoo-inc.com>2017-01-18 11:40:10 +0100
commit2945c88c507a382144e9713ef8f338bdca9c77e2 (patch)
tree4794781ca4b82c77570f41c59394e78e9c4da4f0 /container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java
parent32e3cbf82a532f9e1c7763270fc485bbf0d79d0e (diff)
Use int length and allow 0 length
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java11
1 files changed, 6 insertions, 5 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java
index 422445a31da..0d97a5bdaf7 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java
@@ -23,7 +23,8 @@ public class TensorField extends DocsumField implements VariableLengthField {
@Override
public Tensor decode(ByteBuffer buffer) {
- int length = ((int) buffer.getShort()) & 0xffff;
+ int length = buffer.getInt();
+ if (length == 0) return null;
ByteBuffer contentBuffer = ByteBuffer.wrap(buffer.array(), buffer.arrayOffset() + buffer.position(), length);
Tensor tensor = TypedBinaryFormat.decode(Optional.empty(), new GrowableByteBuffer(contentBuffer));
buffer.position(buffer.position() + length);
@@ -45,14 +46,14 @@ public class TensorField extends DocsumField implements VariableLengthField {
@Override
public int getLength(ByteBuffer b) {
int offset = b.position();
- int len = ((int) b.getShort()) & 0xffff;
- b.position(offset + len + (Short.SIZE >> 3));
- return len + (Short.SIZE >> 3);
+ int length = b.getInt();
+ b.position(offset + length);
+ return length;
}
@Override
public int sizeOfLength() {
- return Short.SIZE >> 3;
+ return 4;
}
@Override