Only pass key to addPointWrite
All checks were successful
Tests / Release [gcc] total: 583, passed: 583
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/26//gcc">weaselab » conflict-set » main #26</a>
Tests / Coverage total: 581, passed: 581
weaselab/conflict-set/pipeline/head This commit looks good
All checks were successful
Tests / Release [gcc] total: 583, passed: 583
GNU C Compiler (gcc) |Total|New|Outstanding|Fixed|Trend
|:-:|:-:|:-:|:-:|:-:
|0|0|0|0|:clap:
Reference build: <a href="https://jenkins.weaselab.dev/job/weaselab/job/conflict-set/job/main/26//gcc">weaselab » conflict-set » main #26</a>
Tests / Coverage total: 581, passed: 581
weaselab/conflict-set/pipeline/head This commit looks good
This commit is contained in:
@@ -1395,19 +1395,18 @@ void destroyTree(Node *root) {
|
||||
}
|
||||
|
||||
void addPointWrite(Node *&root, int64_t oldestVersion,
|
||||
const ConflictSet::WriteRange &w) {
|
||||
auto *n = insert(&root, std::span<const uint8_t>(w.begin.p, w.begin.len),
|
||||
w.writeVersion, true);
|
||||
std::span<const uint8_t> key, int64_t writeVersion) {
|
||||
auto *n = insert(&root, key, writeVersion, true);
|
||||
if (!n->entryPresent) {
|
||||
auto *p = nextLogical(n);
|
||||
n->entryPresent = true;
|
||||
n->entry.pointVersion = w.writeVersion;
|
||||
n->maxVersion = w.writeVersion;
|
||||
n->entry.pointVersion = writeVersion;
|
||||
n->maxVersion = writeVersion;
|
||||
n->entry.rangeVersion =
|
||||
p != nullptr ? p->entry.rangeVersion : oldestVersion;
|
||||
} else {
|
||||
n->entry.pointVersion = std::max(n->entry.pointVersion, w.writeVersion);
|
||||
n->maxVersion = std::max(n->maxVersion, w.writeVersion);
|
||||
n->entry.pointVersion = std::max(n->entry.pointVersion, writeVersion);
|
||||
n->maxVersion = std::max(n->maxVersion, writeVersion);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1421,7 +1420,7 @@ void addWriteRange(Node *&root, int64_t oldestVersion,
|
||||
std::min(begin.size(), end.size()));
|
||||
if (lcp == int(begin.size()) && end.size() == begin.size() + 1 &&
|
||||
end.back() == 0) {
|
||||
return addPointWrite(root, oldestVersion, w);
|
||||
return addPointWrite(root, oldestVersion, begin, w.writeVersion);
|
||||
}
|
||||
auto remaining = begin.subspan(0, lcp);
|
||||
|
||||
@@ -1644,7 +1643,9 @@ struct __attribute__((visibility("hidden"))) ConflictSet::Impl {
|
||||
addWriteRange(root, oldestVersion, w);
|
||||
} else {
|
||||
keyUpdates += 1;
|
||||
addPointWrite(root, oldestVersion, w);
|
||||
addPointWrite(root, oldestVersion,
|
||||
std::span<const uint8_t>(w.begin.p, w.begin.len),
|
||||
w.writeVersion);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user