aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2023-06-12 15:46:24 +0200
committerGitHub <noreply@github.com>2023-06-12 15:46:24 +0200
commit9bfaff78c9f768f0b0dc904520aa1419dbf6f210 (patch)
tree55cf37e93e6b70dcbc912e2cb87908402b08c38c
parenta8588e074f7f556eb275c631a2b1d67299d21aba (diff)
parent1dcabf8571e7c3311ed4bef13f6932237040d5aa (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.cpp7
-rw-r--r--vespalib/src/vespa/vespalib/datastore/array_store_type_mapper.h2
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();