aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/fastsearch/TensorField.java
diff options
context:
space:
mode:
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