diff options
| -rwxr-xr-x | indra/newview/llappearancemgr.cpp | 13 | ||||
| -rwxr-xr-x | indra/newview/llappearancemgr.h | 1 | 
2 files changed, 12 insertions, 2 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index 7fbe84312e..359d5aaa5c 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -2590,6 +2590,12 @@ LLInventoryModel::item_array_t LLAppearanceMgr::findCOFItemLinks(const LLUUID& i  	return result;  } +bool LLAppearanceMgr::isLinkedInCOF(const LLUUID& item_id) +{ +	LLInventoryModel::item_array_t links = LLAppearanceMgr::instance().findCOFItemLinks(item_id); +	return links.size() > 0; +} +  void LLAppearanceMgr::removeAllClothesFromAvatar()  {  	// Fetch worn clothes (i.e. the ones in COF). @@ -3799,8 +3805,11 @@ void LLAppearanceMgr::registerAttachment(const LLUUID& item_id)  		   // we have to pass do_update = true to call LLAppearanceMgr::updateAppearanceFromCOF.  		   // it will trigger gAgentWariables.notifyLoadingFinished()  		   // But it is not acceptable solution. See EXT-7777 -		   LLPointer<LLInventoryCallback> cb = new LLUpdateAppearanceOnDestroy(); -		   LLAppearanceMgr::addCOFItemLink(item_id, cb);  // Add COF link for item. +		   if (!isLinkedInCOF(item_id)) +		   { +			   LLPointer<LLInventoryCallback> cb = new LLUpdateAppearanceOnDestroy(); +			   LLAppearanceMgr::addCOFItemLink(item_id, cb);  // Add COF link for item. +		   }  	   }  	   else  	   { diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h index 3a90c3840a..2a882fd977 100755 --- a/indra/newview/llappearancemgr.h +++ b/indra/newview/llappearancemgr.h @@ -145,6 +145,7 @@ public:  	// Find COF entries referencing the given item.  	LLInventoryModel::item_array_t findCOFItemLinks(const LLUUID& item_id); +	bool isLinkedInCOF(const LLUUID& item_id);  	// Remove COF entries  	void removeCOFItemLinks(const LLUUID& item_id, LLPointer<LLInventoryCallback> cb = NULL);  | 
