Optimize path finalization in pathfinder (#8100)

The pathfinder needs quite a bunch of items to add to the
resulting list. It turns out the amount of the space needed
for the finalized path is known in advance so preallocate it
to avoid a burst of reallocation calls each time something
needs to look for a path.
This commit is contained in:
Jozef Behran 2019-01-12 10:57:26 -05:00 committed by Loïc Blot
parent 03cc93f489
commit 5a00b11895

@ -707,6 +707,7 @@ std::vector<v3s16> Pathfinder::getPath(ServerEnvironment *env,
//finalize path //finalize path
std::vector<v3s16> full_path; std::vector<v3s16> full_path;
full_path.reserve(path.size());
for (const v3s16 &i : path) { for (const v3s16 &i : path) {
full_path.push_back(getIndexElement(i).pos); full_path.push_back(getIndexElement(i).pos);
} }