зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1688833 - Migrate LookupForAdd to WithEntryHandle in dom/localstorage. r=dom-storage-reviewers,janv
Differential Revision: https://phabricator.services.mozilla.com/D104194
This commit is contained in:
Родитель
b2d872c3b8
Коммит
4b754c2bfa
|
@ -5435,8 +5435,8 @@ void Snapshot::SaveItem(const nsAString& aKey, const LSValue& aOldValue,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mLoadedItems.GetEntry(aKey) && !mUnknownItems.GetEntry(aKey)) {
|
if (!mLoadedItems.GetEntry(aKey) && !mUnknownItems.GetEntry(aKey)) {
|
||||||
LSValue oldValue(aOldValue);
|
mValues.WithEntryHandle(aKey,
|
||||||
mValues.LookupForAdd(aKey).OrInsert([oldValue]() { return oldValue; });
|
[&](auto&& entry) { entry.OrInsert(aOldValue); });
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aAffectsOrder && !mSavedKeys) {
|
if (aAffectsOrder && !mSavedKeys) {
|
||||||
|
|
|
@ -731,14 +731,14 @@ nsresult LSSnapshot::GetItemInternal(const nsAString& aKey,
|
||||||
if (aValue.WasPassed()) {
|
if (aValue.WasPassed()) {
|
||||||
const nsString& value = aValue.Value();
|
const nsString& value = aValue.Value();
|
||||||
if (!value.IsVoid()) {
|
if (!value.IsVoid()) {
|
||||||
auto entry = mValues.LookupForAdd(aKey);
|
mValues.WithEntryHandle(aKey, [&](auto&& entry) {
|
||||||
if (entry) {
|
if (entry) {
|
||||||
result = entry.Data();
|
result = std::exchange(entry.Data(), value);
|
||||||
entry.Data() = value;
|
} else {
|
||||||
} else {
|
result.SetIsVoid(true);
|
||||||
result.SetIsVoid(true);
|
entry.Insert(value);
|
||||||
entry.OrInsert([value]() { return value; });
|
}
|
||||||
}
|
});
|
||||||
} else {
|
} else {
|
||||||
if (auto entry = mValues.Lookup(aKey)) {
|
if (auto entry = mValues.Lookup(aKey)) {
|
||||||
result = entry.Data();
|
result = entry.Data();
|
||||||
|
|
Загрузка…
Ссылка в новой задаче