From 167c6b72ade25bbff91aa2eecd1c03af28b8afcc Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Mon, 28 Mar 2022 14:55:42 +0200 Subject: Use acquire_elem_ref() in predicate attribute. --- searchlib/src/vespa/searchlib/attribute/predicate_attribute.h | 5 +++-- searchlib/src/vespa/searchlib/predicate/simple_index.h | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) (limited to 'searchlib/src') diff --git a/searchlib/src/vespa/searchlib/attribute/predicate_attribute.h b/searchlib/src/vespa/searchlib/attribute/predicate_attribute.h index 0d2931a1f04..40823faff8a 100644 --- a/searchlib/src/vespa/searchlib/attribute/predicate_attribute.h +++ b/searchlib/src/vespa/searchlib/attribute/predicate_attribute.h @@ -63,11 +63,12 @@ public: * The pointer is only guaranteed to be valid for as long as you hold the attribute guard. **/ MinFeatureHandle getMinFeatureVector() const { - return MinFeatureHandle(&_min_feature[0], getNumDocs()); + const auto* min_feature_vector = &_min_feature.acquire_elem_ref(0); + return MinFeatureHandle(min_feature_vector, getNumDocs()); } const IntervalRange * getIntervalRangeVector() const { - return &_interval_range_vector[0]; + return &_interval_range_vector.acquire_elem_ref(0); } IntervalRange getMaxIntervalRange() const { diff --git a/searchlib/src/vespa/searchlib/predicate/simple_index.h b/searchlib/src/vespa/searchlib/predicate/simple_index.h index 25ba76ce7c4..df3d0686e82 100644 --- a/searchlib/src/vespa/searchlib/predicate/simple_index.h +++ b/searchlib/src/vespa/searchlib/predicate/simple_index.h @@ -88,8 +88,10 @@ public: PostingVectorIterator(const PostingVectorIterator&) = default; PostingVectorIterator& operator=(const PostingVectorIterator&) = default; - explicit PostingVectorIterator(const PostingVector & vector, size_t size) : - _vector(&vector[0]), _size(size) { + explicit PostingVectorIterator(const PostingVector & vector, size_t size) + : _vector(&vector.acquire_elem_ref(0)), + _size(size) + { assert(_size <= vector.size()); linearSeek(1); } -- cgit v1.2.3