diff options
author | Arne Juul <arnej@verizonmedia.com> | 2020-08-27 14:47:37 +0000 |
---|---|---|
committer | Arne Juul <arnej@verizonmedia.com> | 2020-08-27 14:47:37 +0000 |
commit | 8846f60e983fd8ed5c879be5b2b5fafbf75a0a0c (patch) | |
tree | d09cdc7ed1dfbb0d4ca7301b8819abff4be9adb6 /searchlib | |
parent | 81e8211b713df49a7d6cfffb927fc82b35d46825 (diff) |
avoid mis-use of std::vector
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/tensor/direct_tensor_attribute.cpp | 7 |
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)); } |