diff --git a/ConflictSet.cpp b/ConflictSet.cpp index 0e984e9..3744936 100644 --- a/ConflictSet.cpp +++ b/ConflictSet.cpp @@ -1567,7 +1567,8 @@ template if constexpr (kBegin) { auto &m = maxVersion(*self, impl); - m = std::max(m, writeVersion); + assert(writeVersion >= m); + m = writeVersion; } if (key.size() == 0) { @@ -1576,7 +1577,8 @@ template if constexpr (!kBegin) { auto &m = maxVersion(*self, impl); - m = std::max(m, writeVersion); + assert(writeVersion >= m); + m = writeVersion; } auto &child = getOrCreateChild(*self, key.front(), allocators); @@ -1623,7 +1625,8 @@ void addPointWrite(Node *&root, int64_t oldestVersion, n->entry.rangeVersion = p != nullptr ? p->entry.rangeVersion : oldestVersion; } else { - n->entry.pointVersion = std::max(n->entry.pointVersion, writeVersion); + assert(writeVersion >= n->entry.pointVersion); + n->entry.pointVersion = writeVersion; } } @@ -1659,7 +1662,8 @@ void addWriteRange(Node *&root, int64_t oldestVersion, } auto &m = maxVersion(n, impl); - m = std::max(m, writeVersion); + assert(writeVersion >= m); + m = writeVersion; remaining = remaining.subspan(n->partialKeyLen + 1, remaining.size() - (n->partialKeyLen + 1)); @@ -1688,9 +1692,10 @@ void addWriteRange(Node *&root, int64_t oldestVersion, maxVersion(beginNode, impl) = writeVersion; } auto &m = maxVersion(beginNode, impl); - m = std::max(m, writeVersion); - beginNode->entry.pointVersion = - std::max(beginNode->entry.pointVersion, writeVersion); + assert(writeVersion >= m); + m = writeVersion; + assert(writeVersion >= beginNode->entry.pointVersion); + beginNode->entry.pointVersion = writeVersion; auto *endNode = insert(useAsRoot, end, writeVersion, allocators, impl);