mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-05-09 03:57:51 +03:00
Skip load cell ref when there is no need
Primarily to avoid temporary allocations by ESMReader::getHString.
This commit is contained in:
parent
f4923204bf
commit
bbfdb347bd
9 changed files with 219 additions and 103 deletions
|
@ -435,7 +435,7 @@ namespace MWRender
|
|||
cMRef.mRefNum.mIndex = 0;
|
||||
bool deleted = false;
|
||||
bool moved = false;
|
||||
while(cell->getNextRef(esm[index], ref, deleted, cMRef, moved))
|
||||
while (ESM::Cell::getNextRef(esm[index], ref, deleted, cMRef, moved, ESM::Cell::GetNextRefMode::LoadOnlyNotMoved))
|
||||
{
|
||||
if (moved)
|
||||
continue;
|
||||
|
|
|
@ -568,7 +568,7 @@ namespace MWWorld
|
|||
cMRef.mRefNum.mIndex = 0;
|
||||
bool deleted = false;
|
||||
bool moved = false;
|
||||
while(mCell->getNextRef(esm[index], ref, deleted, cMRef, moved))
|
||||
while (ESM::Cell::getNextRef(esm[index], ref, deleted, cMRef, moved, ESM::Cell::GetNextRefMode::LoadOnlyNotMoved))
|
||||
{
|
||||
if (deleted || moved)
|
||||
continue;
|
||||
|
@ -628,7 +628,7 @@ namespace MWWorld
|
|||
cMRef.mRefNum.mIndex = 0;
|
||||
bool deleted = false;
|
||||
bool moved = false;
|
||||
while(mCell->getNextRef(esm[index], ref, deleted, cMRef, moved))
|
||||
while (ESM::Cell::getNextRef(esm[index], ref, deleted, cMRef, moved, ESM::Cell::GetNextRefMode::LoadOnlyNotMoved))
|
||||
{
|
||||
if (moved)
|
||||
continue;
|
||||
|
|
|
@ -448,7 +448,7 @@ namespace MWWorld
|
|||
//
|
||||
// Get regular moved reference data. Adapted from CellStore::loadRefs. Maybe we can optimize the following
|
||||
// implementation when the oher implementation works as well.
|
||||
while (cell->getNextRef(esm, ref, deleted, cMRef, moved))
|
||||
while (ESM::Cell::getNextRef(esm, ref, deleted, cMRef, moved, ESM::Cell::GetNextRefMode::LoadOnlyMoved))
|
||||
{
|
||||
if (!moved)
|
||||
continue;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue