summaryrefslogtreecommitdiffstats
path: root/searchlib
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2020-08-27 14:47:37 +0000
committerArne Juul <arnej@verizonmedia.com>2020-08-27 14:47:37 +0000
commit8846f60e983fd8ed5c879be5b2b5fafbf75a0a0c (patch)
treed09cdc7ed1dfbb0d4ca7301b8819abff4be9adb6 /searchlib
parent81e8211b713df49a7d6cfffb927fc82b35d46825 (diff)
avoid mis-use of std::vector
Diffstat (limited to 'searchlib')
-rw-r--r--searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp b/searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp
index a3732041360..92f4944f771 100644
--- a/searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp
+++ b/searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp
@@ -6,6 +6,7 @@
#include <vespa/fastlib/io/bufferedfile.h>
#include <vespa/searchlib/attribute/readerbase.h>
#include <vespa/searchlib/util/fileutil.h>
+#include <vespa/vespalib/util/array.h>
#include "tensor_reader.h"
#include "tensor_deserialize.h"
@@ -26,11 +27,13 @@ DirectTensorAttribute::onLoad()
setCreateSerialNum(tensorReader.getCreateSerialNum());
assert(tensorReader.getVersion() == TENSOR_ATTRIBUTE_VERSION);
uint32_t numDocs = tensorReader.getDocIdLimit();
- std::vector<char> buffer;
+ vespalib::Array<char> buffer(1024);
for (uint32_t lid = 0; lid < numDocs; ++lid) {
uint32_t tensorSize = tensorReader.getNextTensorSize();
if (tensorSize != 0) {
- buffer.reserve(tensorSize);
+ if (tensorSize > buffer.size()) {
+ buffer.resize(tensorSize + 1024);
+ }
tensorReader.readTensor(&buffer[0], tensorSize);
setTensor(lid, deserialize_tensor(&buffer[0], tensorSize));
}