Merge pull request 'Fix RealDataBench subspan and version API contract violations' (#61) from weaselbot/conflict-set:weaselbot/issue-58 into main

Reviewed-on: weaselab/conflict-set#61
This commit is contained in:
2026-06-29 18:49:58 +00:00
+7 -6
View File
@@ -1,5 +1,6 @@
#include <ConflictSet.h>
#include <algorithm>
#include <cerrno>
#include <chrono>
#include <cstdio>
@@ -77,10 +78,10 @@ int main(int argc, const char **argv) {
begin = end + 1;
end = (uint8_t *)memchr(begin, '\n', size);
if (line.size() > 0 && line[0] == 'P') {
write = line.subspan(2, line.size());
} else if (line.size() > 0 && line[0] == 'L') {
reads.push_back(line.subspan(2, line.size()));
if (line.size() >= 2 && line[0] == 'P') {
write = line.subspan(2, line.size() - 2);
} else if (line.size() >= 2 && line[0] == 'L') {
reads.push_back(line.subspan(2, line.size() - 2));
} else if (line.empty()) {
{
readRanges.resize(reads.size());
@@ -90,7 +91,7 @@ int main(int argc, const char **argv) {
iter->begin.len = read.size();
checkBytes += read.size();
iter->end.len = 0;
iter->readVersion = version - 100;
iter->readVersion = std::max<int64_t>(0, version - 100);
++iter;
}
}
@@ -121,7 +122,7 @@ int main(int argc, const char **argv) {
}
timer = now();
cs.setOldestVersion(version - 10000);
cs.setOldestVersion(std::max<int64_t>(0, version - 10000));
gcTime += now() - timer;
}
}