From 2a79cc287d3c759d8a6e51bcf030fcb83c872c01 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Tue, 9 Mar 2010 09:31:11 -0500 Subject: For EXT-6247. Log file spam cleanup --- indra/newview/llappearancemgr.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'indra/newview/llappearancemgr.cpp') diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index f08d8decfe..f686eccf37 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -494,11 +494,12 @@ bool LLWearableHoldingPattern::pollFetchCompletion() bool completed = isFetchCompleted(); bool timed_out = isTimedOut(); bool done = completed || timed_out; - - llinfos << "polling, done status: " << completed << " timed out " << timed_out << " elapsed " << mWaitTime.getElapsedTimeF32() << llendl; if (done) { + llinfos << "polling, done status: " << completed << " timed out " << timed_out + << " elapsed " << mWaitTime.getElapsedTimeF32() << llendl; + mFired = true; if (timed_out) -- cgit v1.2.3 From 779844f73ac27ece4697aaca4598ded1f461c218 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Thu, 11 Mar 2010 17:50:14 -0500 Subject: For EXT-5333: Bodyparts missing from appearance and COF. Recovered wearables were failing to get added correctly due to wrong timeout logic. Reviewed by Nyx. --- indra/newview/llappearancemgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llappearancemgr.cpp') diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index f686eccf37..82110f3ab7 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -436,9 +436,9 @@ void LLWearableHoldingPattern::checkMissingWearables() } } + mWaitTime.reset(); if (!pollMissingWearables()) { - mWaitTime.reset(); doOnIdleRepeating(boost::bind(&LLWearableHoldingPattern::pollMissingWearables,this)); } } -- cgit v1.2.3 From 43f1abee2b7c8f2a1615ee98074b024156392dd9 Mon Sep 17 00:00:00 2001 From: Loren Shih Date: Mon, 15 Mar 2010 17:43:17 -0400 Subject: EXT-6367: Can't delete non-links from COF EXT-6372 : Can waer non-links in COF Some minor changes to account for non-link items appearing in the COF (non-links shouldn't appear in COF, but this can happen due to bugs or 1.23 usage). First fix allows for these items to be deleted. Second fix ignores these items from being processed/worn. --- indra/newview/llappearancemgr.cpp | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) (limited to 'indra/newview/llappearancemgr.cpp') diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index f686eccf37..f6509a8016 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -1130,6 +1130,22 @@ void LLAppearanceManager::updateAgentWearables(LLWearableHoldingPattern* holder, // dec_busy_count(); } +static void remove_non_link_items(LLInventoryModel::item_array_t &items) +{ + LLInventoryModel::item_array_t pruned_items; + for (LLInventoryModel::item_array_t::const_iterator iter = items.begin(); + iter != items.end(); + ++iter) + { + const LLViewerInventoryItem *item = (*iter); + if (item && item->getIsLinkType()) + { + pruned_items.push_back((*iter)); + } + } + items = pruned_items; +} + void LLAppearanceManager::updateAppearanceFromCOF() { // update dirty flag to see if the state of the COF matches @@ -1143,13 +1159,17 @@ void LLAppearanceManager::updateAppearanceFromCOF() bool follow_folder_links = true; LLUUID current_outfit_id = getCOF(); - // Find all the wearables that are in the COF's subtree. + // Find all the wearables that are in the COF's subtree. lldebugs << "LLAppearanceManager::updateFromCOF()" << llendl; LLInventoryModel::item_array_t wear_items; LLInventoryModel::item_array_t obj_items; LLInventoryModel::item_array_t gest_items; getUserDescendents(current_outfit_id, wear_items, obj_items, gest_items, follow_folder_links); - + // Get rid of non-links in case somehow the COF was corrupted. + remove_non_link_items(wear_items); + remove_non_link_items(obj_items); + remove_non_link_items(gest_items); + if(!wear_items.count()) { LLNotificationsUtil::add("CouldNotPutOnOutfit"); @@ -1173,7 +1193,7 @@ void LLAppearanceManager::updateAppearanceFromCOF() { LLViewerInventoryItem *item = wear_items.get(i); LLViewerInventoryItem *linked_item = item ? item->getLinkedItem() : NULL; - if (item && linked_item) + if (item && item->getIsLinkType() && linked_item) { LLFoundData found(linked_item->getUUID(), linked_item->getAssetUUID(), @@ -1200,11 +1220,11 @@ void LLAppearanceManager::updateAppearanceFromCOF() { if (!item) { - llwarns << "attempt to wear a null item " << llendl; + llwarns << "Attempt to wear a null item " << llendl; } else if (!linked_item) { - llwarns << "attempt to wear a broken link " << item->getName() << llendl; + llwarns << "Attempt to wear a broken link [ name:" << item->getName() << " ] " << llendl; } } } @@ -1734,6 +1754,13 @@ BOOL LLAppearanceManager::getIsProtectedCOFItem(const LLUUID& obj_id) const { if (!getIsInCOF(obj_id)) return FALSE; + // If a non-link somehow ended up in COF, allow deletion. + const LLInventoryObject *obj = gInventory.getObject(obj_id); + if (obj && !obj->getIsLinkType()) + { + return FALSE; + } + // For now, don't allow direct deletion from the COF. Instead, force users // to choose "Detach" or "Take Off". return TRUE; -- cgit v1.2.3 From b84b0e71c12bb5ae7e9a6dafa1735a99f5975645 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Fri, 19 Mar 2010 11:23:51 -0400 Subject: For EXT-4173, EXT-5871, EXT-3812: increased timeout for wearable asset fetches from 20 seconds to 60 seconds. Reviewed by Nyx --- indra/newview/llappearancemgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llappearancemgr.cpp') diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp index f2d15757c9..b3dfb8f141 100644 --- a/indra/newview/llappearancemgr.cpp +++ b/indra/newview/llappearancemgr.cpp @@ -399,7 +399,7 @@ bool LLWearableHoldingPattern::isFetchCompleted() bool LLWearableHoldingPattern::isTimedOut() { - static F32 max_wait_time = 20.0; // give up if wearable fetches haven't completed in max_wait_time seconds. + static F32 max_wait_time = 60.0; // give up if wearable fetches haven't completed in max_wait_time seconds. return mWaitTime.getElapsedTimeF32() > max_wait_time; } -- cgit v1.2.3