diff options
Diffstat (limited to 'searchlib')
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h | 2 | ||||
-rw-r--r-- | searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h | 2 |
2 files changed, 3 insertions, 1 deletions
diff --git a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h index 71f1191e507..382f5b02642 100644 --- a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h +++ b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping.h @@ -31,7 +31,7 @@ public: const vespalib::GrowStrategy &gs, std::shared_ptr<vespalib::alloc::MemoryAllocator> memory_allocator); ~MultiValueMapping() override; - ConstArrayRef get(uint32_t docId) const { return _store.get(_indices[docId].load_acquire()); } + ConstArrayRef get(uint32_t docId) const { return _store.get(acquire_entry_ref(docId)); } ConstArrayRef getDataForIdx(EntryRef idx) const { return _store.get(idx); } void set(uint32_t docId, ConstArrayRef values); diff --git a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h index e4588c8e743..9e42e2763e5 100644 --- a/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h +++ b/searchlib/src/vespa/searchlib/attribute/multi_value_mapping_base.h @@ -39,6 +39,8 @@ protected: void updateValueCount(size_t oldValues, size_t newValues) { _totalValues += newValues - oldValues; } + + EntryRef acquire_entry_ref(uint32_t docId) const noexcept { return _indices.acquire_elem_ref(docId).load_acquire(); } public: using RefCopyVector = vespalib::Array<EntryRef>; |