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.