diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2013-08-14 14:25:22 -0400 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2013-08-14 14:25:22 -0400 |
commit | 2157cf5e71f40ae4cc9eedaea6811a4c55718747 (patch) | |
tree | cbc308941ea4042d98e8decab622e73291ad7197 | |
parent | 4961ee03c7af92754f853530a4d346ed84f721d1 (diff) |
SH-4422 FIX - fixed some recently introduced issues with link description fields, which among other things reduces the number of appearance requests sent.
-rwxr-xr-x | indra/newview/llappearancemgr.cpp | 14 | ||||
-rwxr-xr-x | indra/newview/llpaneleditwearable.cpp | 4 | ||||
-rwxr-xr-x | indra/newview/llviewerinventory.cpp | 12 | ||||
-rwxr-xr-x | indra/newview/llviewerinventory.h | 5 |
4 files changed, 14 insertions, 21 deletions
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index c4bc6f648f..939d817201 100755 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -1592,8 +1592,7 @@ void LLAppearanceMgr::shallowCopyCategoryContents(const LLUUID& src_id, const LL } if (!link_array.empty()) { - const bool resolve_links = true; - link_inventory_array(dst_id, link_array, cb, resolve_links); + link_inventory_array(dst_id, link_array, cb); } } @@ -2528,10 +2527,10 @@ void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, if (!linked_already) { - LLInventoryObject::const_object_list_t obj_array; - obj_array.push_back(LLConstPointer<LLInventoryObject>(vitem)); - const bool resolve_links = true; - link_inventory_array(getCOF(), obj_array, cb, resolve_links); + LLViewerInventoryItem *copy_item = new LLViewerInventoryItem; + copy_item->copyViewerItem(vitem); + copy_item->setDescription(description); + link_inventory_object(getCOF(), copy_item, cb); } } @@ -2735,7 +2734,8 @@ void LLAppearanceMgr::updateIsDirty() if (item1->getActualDescription() != item2->getActualDescription()) { LL_DEBUGS("Avatar") << "desc different " << item1->getActualDescription() - << " " << item2->getActualDescription() << llendl; + << " " << item2->getActualDescription() + << " names " << item1->getName() << " " << item2->getName() << llendl; } } mOutfitIsDirty = true; diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp index 0532370ff2..582998c973 100755 --- a/indra/newview/llpaneleditwearable.cpp +++ b/indra/newview/llpaneleditwearable.cpp @@ -1098,11 +1098,9 @@ void LLPanelEditWearable::saveChanges(bool force_save_as) LLInventoryObject::const_object_list_t obj_array; obj_array.push_back(LLConstPointer<LLInventoryObject>(link_item)); - const bool resolve_links = true; link_inventory_array(LLAppearanceMgr::instance().getCOF(), obj_array, - gAgentAvatarp->mEndCustomizeCallback, - resolve_links); + gAgentAvatarp->mEndCustomizeCallback); // Remove old link remove_inventory_item(link_item->getUUID(), gAgentAvatarp->mEndCustomizeCallback); } diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp index dc17da9009..b623b23e1a 100755 --- a/indra/newview/llviewerinventory.cpp +++ b/indra/newview/llviewerinventory.cpp @@ -1101,8 +1101,7 @@ void link_inventory_object(const LLUUID& category, // Create links to all listed inventory objects. void link_inventory_array(const LLUUID& category, LLInventoryObject::const_object_list_t& baseobj_array, - LLPointer<LLInventoryCallback> cb, - bool resolve_links /* = false */) + LLPointer<LLInventoryCallback> cb) { #ifndef LL_RELEASE_FOR_DOWNLOAD const LLViewerInventoryCategory *cat = gInventory.getCategory(category); @@ -1119,11 +1118,6 @@ void link_inventory_array(const LLUUID& category, llwarns << "attempt to link to unknown object" << llendl; continue; } - if (!resolve_links && baseobj->getIsLinkType()) - { - llwarns << "attempt to create a link to a link, linked-to-object's ID " << baseobj->getUUID() << llendl; - continue; - } if (!LLAssetType::lookupCanLink(baseobj->getType())) { @@ -1741,7 +1735,9 @@ void slam_inventory_folder(const LLUUID& folder_id, ++it) { const LLSD& item_contents = *it; - link_inventory_object(folder_id, item_contents["linked_id"].asUUID(), cb); + LLViewerInventoryItem *item = new LLViewerInventoryItem; + item->fromLLSD(item_contents); + link_inventory_object(folder_id, item, cb); } remove_folder_contents(folder_id,false,cb); } diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h index cc715ae21d..b647f4756a 100755 --- a/indra/newview/llviewerinventory.h +++ b/indra/newview/llviewerinventory.h @@ -359,9 +359,8 @@ void link_inventory_object(const LLUUID& category, const LLUUID& id, LLPointer<LLInventoryCallback> cb); void link_inventory_array(const LLUUID& category, - LLInventoryObject::const_object_list_t& baseobj_array, - LLPointer<LLInventoryCallback> cb, - bool resolve_links = false); + LLInventoryObject::const_object_list_t& baseobj_array, + LLPointer<LLInventoryCallback> cb); void move_inventory_item( const LLUUID& agent_id, |