From 7a08bb3f114bbd73ac7a1d24a17247349659a592 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sat, 27 Aug 2016 16:03:31 +0200 Subject: [PATCH] FIRE-19956: Resolve the conflict of temporarily derendered objects still being part of the blacklist and shown in the floater when they were internally removed from the derendered object list after TP --- indra/newview/llviewerobjectlist.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp index f4027abd7e..20f2a127cd 100644 --- a/indra/newview/llviewerobjectlist.cpp +++ b/indra/newview/llviewerobjectlist.cpp @@ -2422,16 +2422,25 @@ LLDebugBeacon::~LLDebugBeacon() } // Helper function to purge the internal list of derendered objects on teleport. - void LLViewerObjectList::resetDerenderList() { std::map< LLUUID, bool > oDerendered; + uuid_vec_t removed_ids; - for( std::map< LLUUID, bool >::iterator itr = mDerendered.begin(); itr != mDerendered.end(); ++itr ) - if( itr->second ) - oDerendered[ itr->first ] = itr->second; + for (std::map< LLUUID, bool >::iterator itr = mDerendered.begin(); itr != mDerendered.end(); ++itr) + { + if (itr->second) + { + oDerendered[itr->first] = itr->second; + } + else + { + removed_ids.push_back(itr->first); + } + } mDerendered.swap( oDerendered ); + FSAssetBlacklist::instance().removeItemsFromBlacklist(removed_ids); } // Helper function to add items from global blacklist after teleport.