From 52517126399a07839c9b78faed90dc7c09285329 Mon Sep 17 00:00:00 2001
From: Rider Linden <rider@lindenlab.com>
Date: Wed, 2 Mar 2016 11:28:55 -0800
Subject: MAINT-6182: When building the list of pathfinding characters throw
 away any entries that are undefined.

---
 indra/newview/llpathfindingcharacterlist.cpp | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

(limited to 'indra')

diff --git a/indra/newview/llpathfindingcharacterlist.cpp b/indra/newview/llpathfindingcharacterlist.cpp
index 12340cebfa..d63daaa59b 100755
--- a/indra/newview/llpathfindingcharacterlist.cpp
+++ b/indra/newview/llpathfindingcharacterlist.cpp
@@ -40,14 +40,14 @@
 //---------------------------------------------------------------------------
 
 LLPathfindingCharacterList::LLPathfindingCharacterList()
-	: LLPathfindingObjectList()
+    : LLPathfindingObjectList()
 {
 }
 
 LLPathfindingCharacterList::LLPathfindingCharacterList(const LLSD& pCharacterListData)
-	: LLPathfindingObjectList()
+    : LLPathfindingObjectList()
 {
-	parseCharacterListData(pCharacterListData);
+    parseCharacterListData(pCharacterListData);
 }
 
 LLPathfindingCharacterList::~LLPathfindingCharacterList()
@@ -56,14 +56,16 @@ LLPathfindingCharacterList::~LLPathfindingCharacterList()
 
 void LLPathfindingCharacterList::parseCharacterListData(const LLSD& pCharacterListData)
 {
-	LLPathfindingObjectMap &objectMap = getObjectMap();
+    LLPathfindingObjectMap &objectMap = getObjectMap();
 
-	for (LLSD::map_const_iterator characterDataIter = pCharacterListData.beginMap();
-		characterDataIter != pCharacterListData.endMap(); ++characterDataIter)
-	{
-		const std::string& uuid(characterDataIter->first);
-		const LLSD& characterData = characterDataIter->second;
-		LLPathfindingObjectPtr character(new LLPathfindingCharacter(uuid, characterData));
-		objectMap.insert(std::pair<std::string, LLPathfindingObjectPtr>(uuid, character));
-	}
+    for (LLSD::map_const_iterator characterDataIter = pCharacterListData.beginMap();
+        characterDataIter != pCharacterListData.endMap(); ++characterDataIter)
+    {
+        if (characterDataIter->second.isUndefined())
+            continue;
+        const std::string& uuid(characterDataIter->first);
+        const LLSD& characterData = characterDataIter->second;
+        LLPathfindingObjectPtr character(new LLPathfindingCharacter(uuid, characterData));
+        objectMap.insert(std::pair<std::string, LLPathfindingObjectPtr>(uuid, character));
+    }
 }
-- 
cgit v1.2.3