diff options
| author | Todd Stinson <stinson@lindenlab.com> | 2012-07-09 13:29:50 -0700 | 
|---|---|---|
| committer | Todd Stinson <stinson@lindenlab.com> | 2012-07-09 13:29:50 -0700 | 
| commit | d7f372d6bee42f405e0e3772ff8c30f4c1bf6612 (patch) | |
| tree | 663d0f8bc3d725fd5d799aae250fa933d0523e40 /indra | |
| parent | 7a61717d879bd01931ded339a46c3ca31c6a28f5 (diff) | |
BUGFIX: Correcting a crash issue that was caused by the rebake navmesh callback handler unexpectedly changing the navmesh state.
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/cmake/LLPhysicsExtensions.cmake | 2 | ||||
| -rw-r--r-- | indra/newview/llpanelpathfindingrebakenavmesh.cpp | 15 | ||||
| -rw-r--r-- | indra/newview/llpanelpathfindingrebakenavmesh.h | 3 | 
3 files changed, 12 insertions, 8 deletions
| diff --git a/indra/cmake/LLPhysicsExtensions.cmake b/indra/cmake/LLPhysicsExtensions.cmake index 2d26360d79..c5aff4dadf 100644 --- a/indra/cmake/LLPhysicsExtensions.cmake +++ b/indra/cmake/LLPhysicsExtensions.cmake @@ -22,7 +22,7 @@ find_library(LL_PHYSICS_RELWITHDEBINFO_LIB ${LLPHYSICS_EXTENSIONS_LIB_NAME} PATH  set(LLPHYSICS_LIBRARIES      debug     ${LL_PHYSICS_DEBUG_LIB} -    optimized ${LL_PHYSICS_RELEASE_LIB} +    optimized ${LL_PHYSICS_RELWITHDEBINFO_LIB}  )  if (LINUX) diff --git a/indra/newview/llpanelpathfindingrebakenavmesh.cpp b/indra/newview/llpanelpathfindingrebakenavmesh.cpp index 2c8c46c7bc..8df041f578 100644 --- a/indra/newview/llpanelpathfindingrebakenavmesh.cpp +++ b/indra/newview/llpanelpathfindingrebakenavmesh.cpp @@ -159,6 +159,11 @@ void LLPanelPathfindingRebakeNavmesh::setMode(ERebakeNavMeshMode pRebakeNavMeshM  	mRebakeNavMeshMode = pRebakeNavMeshMode;  } +LLPanelPathfindingRebakeNavmesh::ERebakeNavMeshMode LLPanelPathfindingRebakeNavmesh::getMode() const +{ +	return mRebakeNavMeshMode; +} +  void LLPanelPathfindingRebakeNavmesh::onNavMeshRebakeClick()  {  	setMode(kRebakeNavMesh_RequestSent); @@ -172,16 +177,14 @@ void LLPanelPathfindingRebakeNavmesh::handleAgentState(BOOL pCanRebakeRegion)  void LLPanelPathfindingRebakeNavmesh::handleRebakeNavMeshResponse(bool pResponseStatus)  { -	setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default); -	if (!pResponseStatus) +	if (getMode() == kRebakeNavMesh_RequestSent)  	{ -		LLNotificationsUtil::add("PathfindingCannotRebakeNavmesh"); +		setMode(pResponseStatus ? kRebakeNavMesh_InProgress : kRebakeNavMesh_Default);  	} -	LLViewerRegion *currentRegion = gAgent.getRegion(); -	if (currentRegion != NULL) +	if (!pResponseStatus)  	{ -		LLPathfindingManager::getInstance()->requestGetNavMeshForRegion(currentRegion, true); +		LLNotificationsUtil::add("PathfindingCannotRebakeNavmesh");  	}  } diff --git a/indra/newview/llpanelpathfindingrebakenavmesh.h b/indra/newview/llpanelpathfindingrebakenavmesh.h index 5fe581ec2f..48764f2aa7 100644 --- a/indra/newview/llpanelpathfindingrebakenavmesh.h +++ b/indra/newview/llpanelpathfindingrebakenavmesh.h @@ -66,7 +66,8 @@ private:  	static LLPanelPathfindingRebakeNavmesh* getPanel(); -	void setMode(ERebakeNavMeshMode pRebakeNavMeshMode); +	void               setMode(ERebakeNavMeshMode pRebakeNavMeshMode); +	ERebakeNavMeshMode getMode() const;  	void onNavMeshRebakeClick(); | 
