Remove redundant setMaxVersion calls

This commit is contained in:
2024-08-05 19:29:38 -07:00
parent 2010920a2c
commit 0201e27498

View File

@@ -2882,9 +2882,9 @@ checkMaxBetweenExclusiveImpl<true>(Node *n, int begin, int end,
#endif #endif
// Returns a pointer to the newly inserted node. Caller must set // Returns a pointer to the newly inserted node. Caller must set
// `entryPresent`, `entry` fields and `maxVersion` on the result. The search // `entryPresent`, and `entry` fields. The search path of the result will have
// path of the result will have `maxVersion` at least `writeVersion` as // `maxVersion` at least `writeVersion` as a postcondition. Nodes along the
// a postcondition. Nodes along the search path to `key` may be invalidated. // search path to `key` may be invalidated.
[[nodiscard]] Node *insert(Node **self, std::span<const uint8_t> key, [[nodiscard]] Node *insert(Node **self, std::span<const uint8_t> key,
InternalVersionT writeVersion, WriteContext *tls, InternalVersionT writeVersion, WriteContext *tls,
ConflictSet::Impl *impl) { ConflictSet::Impl *impl) {
@@ -3001,7 +3001,6 @@ void addPointWrite(Node *&root, std::span<const uint8_t> key,
n->entryPresent = true; n->entryPresent = true;
n->entry.pointVersion = writeVersion; n->entry.pointVersion = writeVersion;
setMaxVersion(n, impl, writeVersion);
n->entry.rangeVersion = n->entry.rangeVersion =
p == nullptr ? tls->zero : std::max(p->entry.rangeVersion, tls->zero); p == nullptr ? tls->zero : std::max(p->entry.rangeVersion, tls->zero);
} else { } else {
@@ -3108,10 +3107,7 @@ void addWriteRange(Node *&root, std::span<const uint8_t> begin,
beginNode->entry.rangeVersion = beginNode->entry.rangeVersion =
p == nullptr ? tls->zero : std::max(p->entry.rangeVersion, tls->zero); p == nullptr ? tls->zero : std::max(p->entry.rangeVersion, tls->zero);
beginNode->entry.pointVersion = writeVersion; beginNode->entry.pointVersion = writeVersion;
assert(maxVersion(beginNode, impl) <= writeVersion);
setMaxVersion(beginNode, impl, writeVersion);
} }
setMaxVersion(beginNode, impl, writeVersion);
assert(writeVersion >= beginNode->entry.pointVersion); assert(writeVersion >= beginNode->entry.pointVersion);
beginNode->entry.pointVersion = writeVersion; beginNode->entry.pointVersion = writeVersion;