From 1ff65f41fd3cb2a8b64c95655d84845fc71ec3e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Botond=20D=C3=A9nes?= Date: Thu, 7 Dec 2017 10:30:33 +0200 Subject: [PATCH] mutation_reader_merger: don't query the kind of moved-from fragment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Call mutation_fragment_kind() on the fragment *before* it's moved as there are not guarantees for the state of a moved-from object (apart from that it's in a valid one). Signed-off-by: Botond Dénes Message-Id: --- mutation_reader.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mutation_reader.cc b/mutation_reader.cc index 2a4e66eebf..2eb32646ca 100644 --- a/mutation_reader.cc +++ b/mutation_reader.cc @@ -204,8 +204,9 @@ future mutation_reader_merger:: do { boost::range::pop_heap(_fragment_heap, fragment_heap_compare(*_schema)); auto& n = _fragment_heap.back(); + const auto kind = n.fragment.mutation_fragment_kind(); _current.emplace_back(std::move(n.fragment)); - _next.emplace_back(n.reader, n.fragment.mutation_fragment_kind()); + _next.emplace_back(n.reader, kind); _fragment_heap.pop_back(); } while (!_fragment_heap.empty() && equal(_current.back().position(), _fragment_heap.front().fragment.position()));