Skip applied mutations in Facade::setOldestVersion
This commit is contained in:
8
Facade.h
8
Facade.h
@@ -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;
|
||||
};
|
Reference in New Issue
Block a user