Skip applied mutations in Facade::setOldestVersion

This commit is contained in:
2024-05-23 11:22:38 -07:00
parent 262c9cd10c
commit c65004d60f

View File

@@ -10,7 +10,8 @@ using String = std::basic_string<uint8_t>;
struct Facade {
explicit Facade(int64_t version) : versioned{version} {}
explicit Facade(int64_t version)
: unversionedVersion(version), versioned{version} {}
struct View {
@@ -132,6 +133,9 @@ struct Facade {
for (auto iter = versioned.begin(version), end = versioned.end(version);
iter != end; ++iter) {
auto m = *iter;
if (m.version < unversionedVersion) {
continue;
}
switch (m.type) {
case weaselab::VersionedMap::Set:
unversioned[String(m.param1, m.param1Len)] =
@@ -152,6 +156,7 @@ struct Facade {
}
}
unversionedVersion = version;
versioned.setOldestVersion(version);
}
@@ -190,6 +195,7 @@ struct Facade {
}
}
int64_t unversionedVersion;
std::map<String, String> unversioned;
weaselab::VersionedMap versioned;
};