From 377ae59c21215473cf05e3cb8a86eb14c9e7715c Mon Sep 17 00:00:00 2001 From: Steven Bennetts Date: Tue, 11 Mar 2008 01:47:36 +0000 Subject: merge Branch_1-19-1-Viewer -r 80930 : 81609 -> release DEV-11202: Unhandled Excpetion in pipeline.cpp. Merged over updated windlight ui help text from windlight14. Reverting a const change in a virtual that was not propagated to all overrides. DEV-10957 stop and pause Media and music buttons do not work DEV-10762 Displayed page in the client browser disappears when crossing property boundaries. DEV-11220 replace misspellings in alerts.xml parameters of 'messsage' DEV-11221 fix a misspelling of 'participants' in floater_chat_history.xml tooltip DEV-11193 clean up some viewer strings related to Windlight help text svn merge -r81144:81147 svn+ssh://svn/svn/linden/branches/1-19-1-viewer-threads DEV-11110 Media browser history dropdown does not save items across sessions Ran the xuiparse -process tool on all en-us xml files. This does NOT change any data, merely reorders attributes and cleans up tab/spacing. DEV-11349 XML CLEANUP: fix duplicate sibling names in en-us xui files DEV-11348 Change to llmimetypes.cpp broke Media Type dropdown dev-10623 "parcels that played movies no longer work in combo-merge-ui" DEV-11379 - crash in LLTabContainer::draw() DEV-11377 Elminiate dangerous LLLinkedList and LLDoubleLinkedList from newview DEV-11158 sculpties on the top10 crash list DEV-11404 "Send Current URL to Parcel" does not set the MIME type merge 80958:80959 maint-ui-9-qa, DEV-11105 -- Searching for people with 3 characters like "j l" hurts the database. DEV-10489: no draw distance cheating DEV-879: water noise frequency DEV-10764: macbook air support DEV-10878: Linux Intel945 support DEV-7551: featuretable adjustments for framerate. DEV-11426 Enormous mini-map. DEV-11505 - Crash in gunzip_file. Removed final LinkedList, SkipMap, and AssocList templates from the Viewer! DEV-11115 truncated word in the Advanced Water Editor's modal help dialog --- indra/newview/llviewerobject.cpp | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) (limited to 'indra/newview/llviewerobject.cpp') diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp index 602b60bc9d..e89722fde8 100644 --- a/indra/newview/llviewerobject.cpp +++ b/indra/newview/llviewerobject.cpp @@ -2292,7 +2292,7 @@ void LLViewerObject::dirtyInventory() // If there aren't any LLVOInventoryListeners, we won't be // able to update our mInventory when it comes back from the // simulator, so we should not clear the inventory either. - if(mInventory && !mInventoryCallbacks.isEmpty()) + if(mInventory && !mInventoryCallbacks.empty()) { mInventory->clear(); // will deref and delete entries delete mInventory; @@ -2308,20 +2308,22 @@ void LLViewerObject::registerInventoryListener(LLVOInventoryListener* listener, LLInventoryCallbackInfo* info = new LLInventoryCallbackInfo; info->mListener = listener; info->mInventoryData = user_data; - mInventoryCallbacks.addData(info); + mInventoryCallbacks.push_front(info); } void LLViewerObject::removeInventoryListener(LLVOInventoryListener* listener) { - if (listener == NULL) return; - LLInventoryCallbackInfo* info; - for (info = mInventoryCallbacks.getFirstData(); - info; - info = mInventoryCallbacks.getNextData() ) + if (listener == NULL) + return; + for (callback_list_t::iterator iter = mInventoryCallbacks.begin(); + iter != mInventoryCallbacks.end(); ) { + callback_list_t::iterator curiter = iter++; + LLInventoryCallbackInfo* info = *curiter; if (info->mListener == listener) { - mInventoryCallbacks.deleteCurrentData(); + delete info; + mInventoryCallbacks.erase(curiter); break; } } @@ -2329,7 +2331,8 @@ void LLViewerObject::removeInventoryListener(LLVOInventoryListener* listener) void LLViewerObject::clearInventoryListeners() { - mInventoryCallbacks.deleteAllData(); + for_each(mInventoryCallbacks.begin(), mInventoryCallbacks.end(), DeletePointer()); + mInventoryCallbacks.clear(); } void LLViewerObject::requestInventory() @@ -2518,10 +2521,11 @@ void LLViewerObject::loadTaskInvFile(const char* filename) void LLViewerObject::doInventoryCallback() { - for(LLInventoryCallbackInfo* info = mInventoryCallbacks.getFirstData(); - info != NULL; - info = mInventoryCallbacks.getNextData()) + for (callback_list_t::iterator iter = mInventoryCallbacks.begin(); + iter != mInventoryCallbacks.end(); ) { + callback_list_t::iterator curiter = iter++; + LLInventoryCallbackInfo* info = *curiter; if (info->mListener != NULL) { info->mListener->inventoryChanged(this, @@ -2532,7 +2536,8 @@ void LLViewerObject::doInventoryCallback() else { llinfos << "LLViewerObject::doInventoryCallback() deleting bad listener entry." << llendl; - mInventoryCallbacks.deleteCurrentData(); + delete info; + mInventoryCallbacks.erase(curiter); } } mInventoryPending = FALSE; -- cgit v1.3