mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-27 02:55:44 +08:00
refs #672 Fixed omission in cache change relay which caused setAndSave to fail to save.
This commit is contained in:
@@ -252,6 +252,7 @@ namespace BlackMisc
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
CValueCachePacket ratifiedChanges(values.isSaved());
|
CValueCachePacket ratifiedChanges(values.isSaved());
|
||||||
|
CValueCachePacket ackedChanges(values.isSaved());
|
||||||
auto out = m_elements.lowerBound(values.cbegin().key());
|
auto out = m_elements.lowerBound(values.cbegin().key());
|
||||||
auto end = m_elements.upperBound((values.cend() - 1).key());
|
auto end = m_elements.upperBound((values.cend() - 1).key());
|
||||||
for (auto in = values.cbegin(); in != values.cend(); ++in)
|
for (auto in = values.cbegin(); in != values.cend(); ++in)
|
||||||
@@ -263,6 +264,7 @@ namespace BlackMisc
|
|||||||
{
|
{
|
||||||
element.m_pendingChanges--;
|
element.m_pendingChanges--;
|
||||||
Q_ASSERT(element.m_pendingChanges >= 0);
|
Q_ASSERT(element.m_pendingChanges >= 0);
|
||||||
|
ackedChanges.insert(in.key(), in.value(), in.timestamp());
|
||||||
}
|
}
|
||||||
else if (element.m_pendingChanges == 0) // ratify a change only if own change is not pending, to ensure consistency
|
else if (element.m_pendingChanges == 0) // ratify a change only if own change is not pending, to ensure consistency
|
||||||
{
|
{
|
||||||
@@ -277,6 +279,7 @@ namespace BlackMisc
|
|||||||
if (ratifiedChanges.isSaved()) { emit valuesSaveRequested(ratifiedChanges); }
|
if (ratifiedChanges.isSaved()) { emit valuesSaveRequested(ratifiedChanges); }
|
||||||
emit valuesChanged(ratifiedChanges, nullptr);
|
emit valuesChanged(ratifiedChanges, nullptr);
|
||||||
}
|
}
|
||||||
|
if (! ackedChanges.empty() && ackedChanges.isSaved()) { emit valuesSaveRequested(ackedChanges); }
|
||||||
}
|
}
|
||||||
|
|
||||||
QJsonObject CValueCache::saveToJson(const QString &keyPrefix) const
|
QJsonObject CValueCache::saveToJson(const QString &keyPrefix) const
|
||||||
|
|||||||
Reference in New Issue
Block a user