forked from teamnwah/openmw-tes3coop
Fix wasteful allocations in Store<Land>::search
This commit is contained in:
parent
72c6b11cf8
commit
a495b9b884
1 changed files with 8 additions and 3 deletions
|
@ -38,6 +38,12 @@ namespace
|
|||
}
|
||||
return x->mX < y->mX;
|
||||
}
|
||||
bool operator()(const ESM::Land *x, const std::pair<int, int>& y) {
|
||||
if (x->mX == y.first) {
|
||||
return x->mY < y.second;
|
||||
}
|
||||
return x->mX < y.first;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -438,11 +444,10 @@ namespace MWWorld
|
|||
}
|
||||
const ESM::Land *Store<ESM::Land>::search(int x, int y) const
|
||||
{
|
||||
ESM::Land land;
|
||||
land.mX = x, land.mY = y;
|
||||
std::pair<int, int> comp(x,y);
|
||||
|
||||
std::vector<ESM::Land *>::const_iterator it =
|
||||
std::lower_bound(mStatic.begin(), mStatic.end(), &land, Compare());
|
||||
std::lower_bound(mStatic.begin(), mStatic.end(), comp, Compare());
|
||||
|
||||
if (it != mStatic.end() && (*it)->mX == x && (*it)->mY == y) {
|
||||
return *it;
|
||||
|
|
Loading…
Reference in a new issue