diff options
| author | simon_linden <none@none> | 2012-03-27 09:37:04 -0700 | 
|---|---|---|
| committer | simon_linden <none@none> | 2012-03-27 09:37:04 -0700 | 
| commit | e4ed409ec3dc5dda151323bc0b4efa8677ee0bb1 (patch) | |
| tree | 4384e4dc306dac6bf08daf4f1be9008d20664b7f /indra | |
| parent | 67a7dab1ca8eec41d3a7ee406b9a0c8f4d5308a9 (diff) | |
MAINT-853:  Audit sendListToRegions() function calls and fix memory leaks.
Reviewed by Kelly
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/llselectmgr.cpp | 17 | 
1 files changed, 10 insertions, 7 deletions
| diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 904bbff153..eec2c0a521 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -3051,11 +3051,11 @@ bool LLSelectMgr::confirmDelete(const LLSD& notification, const LLSD& response,  			// TODO: Make sure you have delete permissions on all of them.  			const LLUUID trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);  			// attempt to derez into the trash. -			LLDeRezInfo* info = new LLDeRezInfo(DRD_TRASH, trash_id); +			LLDeRezInfo info(DRD_TRASH, trash_id);  			LLSelectMgr::getInstance()->sendListToRegions("DeRezObject",  										  packDeRezHeader,  										  packObjectLocalID, -										  (void*)info, +										  (void*) &info,  										  SEND_ONLY_ROOTS);  			// VEFFECT: Delete Object - one effect for all deletes  			if (LLSelectMgr::getInstance()->mSelectedObjects->mSelectType != SELECT_TYPE_HUD) @@ -3745,13 +3745,15 @@ void LLSelectMgr::deselectAllIfTooFar()  void LLSelectMgr::selectionSetObjectName(const std::string& name)  { +	std::string name_copy(name); +  	// we only work correctly if 1 object is selected.  	if(mSelectedObjects->getRootObjectCount() == 1)  	{  		sendListToRegions("ObjectName",  						  packAgentAndSessionID,  						  packObjectName, -						  (void*)(new std::string(name)), +						  (void*)(&name_copy),  						  SEND_ONLY_ROOTS);  	}  	else if(mSelectedObjects->getObjectCount() == 1) @@ -3759,20 +3761,22 @@ void LLSelectMgr::selectionSetObjectName(const std::string& name)  		sendListToRegions("ObjectName",  						  packAgentAndSessionID,  						  packObjectName, -						  (void*)(new std::string(name)), +						  (void*)(&name_copy),  						  SEND_INDIVIDUALS);  	}  }  void LLSelectMgr::selectionSetObjectDescription(const std::string& desc)  { +	std::string desc_copy(desc); +  	// we only work correctly if 1 object is selected.  	if(mSelectedObjects->getRootObjectCount() == 1)  	{  		sendListToRegions("ObjectDescription",  						  packAgentAndSessionID,  						  packObjectDescription, -						  (void*)(new std::string(desc)), +						  (void*)(&desc_copy),  						  SEND_ONLY_ROOTS);  	}  	else if(mSelectedObjects->getObjectCount() == 1) @@ -3780,7 +3784,7 @@ void LLSelectMgr::selectionSetObjectDescription(const std::string& desc)  		sendListToRegions("ObjectDescription",  						  packAgentAndSessionID,  						  packObjectDescription, -						  (void*)(new std::string(desc)), +						  (void*)(&desc_copy),  						  SEND_INDIVIDUALS);  	}  } @@ -4298,7 +4302,6 @@ void LLSelectMgr::packObjectName(LLSelectNode* node, void* user_data)  		gMessageSystem->addU32Fast(_PREHASH_LocalID, node->getObject()->getLocalID());  		gMessageSystem->addStringFast(_PREHASH_Name, *name);  	} -	delete name;  }  // static | 
