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:
Simon Giesecke 2021-02-09 18:19:37 +00:00
Родитель b2d872c3b8
Коммит 4b754c2bfa
2 изменённых файлов: 10 добавлений и 10 удалений

Просмотреть файл

@ -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();