diff options
| author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2009-12-15 17:29:05 -0500 | 
|---|---|---|
| committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2009-12-15 17:29:05 -0500 | 
| commit | e92a88159c7af972c8edd53e50d6ec2d3592a3dd (patch) | |
| tree | d29c393c75b9b1a110b34183fdbd862ea167200f /indra/newview | |
| parent | 109de76574c7fe1944a1330972d796de7894882c (diff) | |
For EXT-3448: New attachments detach after relog. Added a check that the only objects deleted by LLAppearanceManager are links.  Probably not the cause of disappearing objects in this bug, but a good safety feature.
--HG--
branch : avatar-pipeline
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llappearancemgr.cpp | 15 | 
1 files changed, 10 insertions, 5 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 73fd50f9ea..43b2f34ecd 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -455,7 +455,10 @@ void LLAppearanceManager::purgeCategory(const LLUUID& category, bool keep_outfit  		LLViewerInventoryItem *item = items.get(i);  		if (keep_outfit_links && (item->getActualType() == LLAssetType::AT_LINK_FOLDER))  			continue; -		gInventory.purgeObject(item->getUUID()); +		if (item->getIsLinkType()) +		{ +			gInventory.purgeObject(item->getUUID()); +		}  	}  } @@ -947,7 +950,10 @@ void LLAppearanceManager::addCOFItemLink(const LLInventoryItem *item, bool do_up  		else if (areMatchingWearables(vitem,inv_item))  		{  			gAgentWearables.removeWearable(inv_item->getWearableType(),true,0); -			gInventory.purgeObject(inv_item->getUUID()); +			if (inv_item->getIsLinkType()) +			{ +				gInventory.purgeObject(inv_item->getUUID()); +			}  		}  	}  	if (linked_already) @@ -996,10 +1002,9 @@ void LLAppearanceManager::removeCOFItemLinks(const LLUUID& item_id, bool do_upda  	for (S32 i=0; i<item_array.count(); i++)  	{  		const LLInventoryItem* item = item_array.get(i).get(); -		if (item->getLinkedUUID() == item_id) +		if (item->getIsLinkType() && item->getLinkedUUID() == item_id)  		{ -			const LLUUID& item_id = item_array.get(i)->getUUID(); -			gInventory.purgeObject(item_id); +			gInventory.purgeObject(item->getUUID());  		}  	}  	if (do_update)  | 
