summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.h2
-rw-r--r--vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.hpp9
2 files changed, 10 insertions, 1 deletions
diff --git a/vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.h b/vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.h
index 40cc295e76d..0ffc695a285 100644
--- a/vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.h
+++ b/vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.h
@@ -23,6 +23,8 @@ private:
const DataStoreBase &_store;
EnumValues _enumValues;
uint32_t _next_enum_val;
+
+ void allocate_enum_values();
public:
UniqueStoreEnumerator(const IUniqueStoreDictionary &dict, const DataStoreBase &store);
~UniqueStoreEnumerator();
diff --git a/vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.hpp b/vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.hpp
index 729177d394c..48489e9edd5 100644
--- a/vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.hpp
+++ b/vespalib/src/vespa/vespalib/datastore/unique_store_enumerator.hpp
@@ -15,6 +15,7 @@ UniqueStoreEnumerator<RefT>::UniqueStoreEnumerator(const IUniqueStoreDictionary
_enumValues(),
_next_enum_val(1)
{
+ allocate_enum_values();
}
template <typename RefT>
@@ -37,7 +38,7 @@ UniqueStoreEnumerator<RefT>::enumerateValue(EntryRef ref)
template <typename RefT>
void
-UniqueStoreEnumerator<RefT>::enumerateValues()
+UniqueStoreEnumerator<RefT>::allocate_enum_values()
{
_enumValues.resize(RefType::numBuffers());
for (uint32_t bufferId = 0; bufferId < RefType::numBuffers(); ++bufferId) {
@@ -46,6 +47,12 @@ UniqueStoreEnumerator<RefT>::enumerateValues()
_enumValues[bufferId].resize(state.size() / state.getArraySize());
}
}
+}
+
+template <typename RefT>
+void
+UniqueStoreEnumerator<RefT>::enumerateValues()
+{
_next_enum_val = 1;
_dict_snapshot->foreach_key([this](EntryRef ref) { enumerateValue(ref); });
}