1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-02-07 01:15:36 +00:00

Avoid duplicated emplace for interior cell store

This commit is contained in:
elsid 2023-07-23 18:24:55 +02:00
parent a16a5003d8
commit 1a7b4283e7
No known key found for this signature in database
GPG key ID: 4DE04C198CBA7625

View file

@ -32,10 +32,10 @@ namespace MWWorld
CellStore& emplaceCellStore(ESM::RefId id, const T& cell, ESMStore& store, ESM::ReadersCache& readers, CellStore& emplaceCellStore(ESM::RefId id, const T& cell, ESMStore& store, ESM::ReadersCache& readers,
std::unordered_map<ESM::RefId, CellStore>& cells) std::unordered_map<ESM::RefId, CellStore>& cells)
{ {
return cells const auto [it, inserted] = cells.emplace(
.emplace(std::piecewise_construct, std::forward_as_tuple(id), std::piecewise_construct, std::forward_as_tuple(id), std::forward_as_tuple(Cell(cell), store, readers));
std::forward_as_tuple(Cell(cell), store, readers)) assert(inserted);
.first->second; return it->second;
} }
const ESM::Cell* createEsmCell(ESM::ExteriorCellLocation location, ESMStore& store) const ESM::Cell* createEsmCell(ESM::ExteriorCellLocation location, ESMStore& store)
@ -205,6 +205,7 @@ namespace MWWorld
cellStore = &emplaceCellStore(cell4->mId, *cell4, mStore, mReaders, mCells); cellStore = &emplaceCellStore(cell4->mId, *cell4, mStore, mReaders, mCells);
else else
return nullptr; return nullptr;
mInteriors.emplace(name, cellStore);
} }
else else
{ {