diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-06-12 15:46:24 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-06-12 15:46:24 +0200 |
commit | 9bfaff78c9f768f0b0dc904520aa1419dbf6f210 (patch) | |
tree | 55cf37e93e6b70dcbc912e2cb87908402b08c38c | |
parent | a8588e074f7f556eb275c631a2b1d67299d21aba (diff) | |
parent | 1dcabf8571e7c3311ed4bef13f6932237040d5aa (diff) |
Merge pull request #27377 from vespa-engine/toregge/use-32-bit-array-sizes
Use 32-bit array sizes.
-rw-r--r-- | vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.cpp | 7 | ||||
-rw-r--r-- | vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.h | 2 |
2 files changed, 5 insertions, 4 deletions
diff --git a/vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.cpp b/vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.cpp index ff514f5a00b..520fb4cc4ef 100644 --- a/vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.cpp +++ b/vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.cpp @@ -16,11 +16,12 @@ ArrayStoreTypeMapper::~ArrayStoreTypeMapper() = default; uint32_t ArrayStoreTypeMapper::get_type_id(size_t array_size) const { - assert(!_array_sizes.empty()); - auto result = std::lower_bound(_array_sizes.begin() + 1, _array_sizes.end(), array_size); - if (result == _array_sizes.end()) { + assert(_array_sizes.size() >= 2u); + if (array_size > _array_sizes.back()) { return 0; // type id 0 uses buffer type for large arrays } + auto result = std::lower_bound(_array_sizes.begin() + 1, _array_sizes.end(), array_size); + assert(result < _array_sizes.end()); return result - _array_sizes.begin(); } diff --git a/vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.h b/vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.h index 2a406a39bf9..a73b6ef2e97 100644 --- a/vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.h +++ b/vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.h @@ -18,7 +18,7 @@ namespace vespalib::datastore { class ArrayStoreTypeMapper { protected: - std::vector<size_t> _array_sizes; + std::vector<uint32_t> _array_sizes; public: ArrayStoreTypeMapper(); ~ArrayStoreTypeMapper(); |