1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-04-01 13:06:43 +00:00

Fix MSVC2015 C4503 warning

This commit is contained in:
Andrei Kortunov 2018-11-04 11:11:55 +04:00
parent 261bbded00
commit a387c6b910
2 changed files with 14 additions and 8 deletions

View file

@ -64,8 +64,8 @@ namespace DetourNavigator
return Value(); return Value();
// TODO: use different function to make key to avoid unnecessary std::string allocation // TODO: use different function to make key to avoid unnecessary std::string allocation
const auto tile = tileValues->second.find(makeNavMeshKey(recastMesh, offMeshConnections)); const auto tile = tileValues->second.Map.find(makeNavMeshKey(recastMesh, offMeshConnections));
if (tile == tileValues->second.end()) if (tile == tileValues->second.Map.end())
return Value(); return Value();
acquireItemUnsafe(tile->second); acquireItemUnsafe(tile->second);
@ -98,7 +98,7 @@ namespace DetourNavigator
const auto iterator = mFreeItems.emplace(mFreeItems.end(), agentHalfExtents, changedTile, navMeshKey); const auto iterator = mFreeItems.emplace(mFreeItems.end(), agentHalfExtents, changedTile, navMeshKey);
// TODO: use std::string_view or some alternative to avoid navMeshKey copy into both mFreeItems and mValues // TODO: use std::string_view or some alternative to avoid navMeshKey copy into both mFreeItems and mValues
const auto emplaced = mValues[agentHalfExtents][changedTile].emplace(navMeshKey, iterator); const auto emplaced = mValues[agentHalfExtents][changedTile].Map.emplace(navMeshKey, iterator);
if (!emplaced.second) if (!emplaced.second)
{ {
@ -127,15 +127,15 @@ namespace DetourNavigator
if (tileValues == agentValues->second.end()) if (tileValues == agentValues->second.end())
return; return;
const auto value = tileValues->second.find(item.mNavMeshKey); const auto value = tileValues->second.Map.find(item.mNavMeshKey);
if (value == tileValues->second.end()) if (value == tileValues->second.Map.end())
return; return;
mUsedNavMeshDataSize -= static_cast<std::size_t>(item.mNavMeshData.mSize) + item.mNavMeshKey.size(); mUsedNavMeshDataSize -= static_cast<std::size_t>(item.mNavMeshData.mSize) + item.mNavMeshKey.size();
mFreeItems.pop_back(); mFreeItems.pop_back();
tileValues->second.erase(value); tileValues->second.Map.erase(value);
if (!tileValues->second.empty()) if (!tileValues->second.Map.empty())
return; return;
agentValues->second.erase(tileValues); agentValues->second.erase(tileValues);

View file

@ -108,13 +108,19 @@ namespace DetourNavigator
NavMeshData&& value); NavMeshData&& value);
private: private:
struct TileMap
{
std::map<std::string, ItemIterator> Map;
};
std::mutex mMutex; std::mutex mMutex;
std::size_t mMaxNavMeshDataSize; std::size_t mMaxNavMeshDataSize;
std::size_t mUsedNavMeshDataSize; std::size_t mUsedNavMeshDataSize;
std::size_t mFreeNavMeshDataSize; std::size_t mFreeNavMeshDataSize;
std::list<Item> mBusyItems; std::list<Item> mBusyItems;
std::list<Item> mFreeItems; std::list<Item> mFreeItems;
std::map<osg::Vec3f, std::map<TilePosition, std::map<std::string, ItemIterator>>> mValues; std::map<osg::Vec3f, std::map<TilePosition, TileMap>> mValues;
void removeLeastRecentlyUsed(); void removeLeastRecentlyUsed();