diff --git a/src/kits/app/Handler.cpp b/src/kits/app/Handler.cpp index a5947b1b69..cdda7ac7f8 100644 --- a/src/kits/app/Handler.cpp +++ b/src/kits/app/Handler.cpp @@ -690,7 +690,7 @@ ObserverList::_ValidateHandlers(uint32 what) } Add(target, what); - handlers.erase(iterator); + iterator = handlers.erase(iterator); } } @@ -707,7 +707,7 @@ ObserverList::_SendNotices(uint32 what, BMessage* message) while (iterator != messengers.end()) { if (!(*iterator).IsValid()) { - messengers.erase(iterator); + iterator = messengers.erase(iterator); continue; } @@ -793,10 +793,10 @@ ObserverList::Remove(const BHandler *handler, uint32 what) vector &handlers = fHandlerMap[what]; - vector::iterator iter; - iter = find(handlers.begin(), handlers.end(), handler); - if (iter != handlers.end()) { - handlers.erase(iter); + vector::iterator iterator = find(handlers.begin(), + handlers.end(), handler); + if (iterator != handlers.end()) { + handlers.erase(iterator); if (handlers.empty()) fHandlerMap.erase(what); @@ -812,10 +812,10 @@ ObserverList::Remove(const BMessenger &messenger, uint32 what) { vector &messengers = fMessengerMap[what]; - vector::iterator iter; - iter = find(messengers.begin(), messengers.end(), messenger); - if (iter != messengers.end()) { - messengers.erase(iter); + vector::iterator iterator = find(messengers.begin(), + messengers.end(), messenger); + if (iterator != messengers.end()) { + messengers.erase(iterator); if (messengers.empty()) fMessengerMap.erase(what); diff --git a/src/kits/app/RegistrarThreadManager.cpp b/src/kits/app/RegistrarThreadManager.cpp index a913f6acf7..ab42f3e249 100644 --- a/src/kits/app/RegistrarThreadManager.cpp +++ b/src/kits/app/RegistrarThreadManager.cpp @@ -1,5 +1,5 @@ /* - * Copyright 2001-2005, Haiku. + * Copyright 2001-2007, Haiku. * Distributed under the terms of the MIT License. * * Authors: @@ -132,7 +132,7 @@ RegistrarThreadManager::CleanupThreads() } else { OUT("WARNING: RegistrarThreadManager::CleanupThreads(): NULL mime_update_thread_shared_data " "pointer found in and removed from RegistrarThreadManager::fThreads list\n"); - i = fThreads.erase(i); + fThreads.erase(i); } i = next; @@ -168,7 +168,7 @@ RegistrarThreadManager::ShutdownThreads() } else { OUT("WARNING: RegistrarThreadManager::ShutdownThreads(): NULL mime_update_thread_shared_data " "pointer found in and removed from RegistrarThreadManager::fThreads list\n"); - i = fThreads.erase(i); + fThreads.erase(i); } i = next; diff --git a/src/kits/storage/PathMonitor.cpp b/src/kits/storage/PathMonitor.cpp index 4345dadbb9..ff9b728501 100644 --- a/src/kits/storage/PathMonitor.cpp +++ b/src/kits/storage/PathMonitor.cpp @@ -813,11 +813,11 @@ BPathMonitor::StopWatching(BMessenger target) return B_BAD_VALUE; struct watcher* watcher = iterator->second; - HandlerMap::iterator i = watcher->handlers.begin(); - for (; i != watcher->handlers.end(); i++) { + while (!watcher->handlers.empty()) { + HandlerMap::iterator i = watcher->handlers.begin(); PathHandler* handler = i->second; watcher->handlers.erase(i); - + if (handler->LockLooper()) handler->Quit(); } diff --git a/src/kits/translation/TranslatorRoster.cpp b/src/kits/translation/TranslatorRoster.cpp index 8e27a45546..b9bb037469 100644 --- a/src/kits/translation/TranslatorRoster.cpp +++ b/src/kits/translation/TranslatorRoster.cpp @@ -838,14 +838,12 @@ BTranslatorRoster::Private::_CompareSupport(const void* _a, const void* _b) void BTranslatorRoster::Private::_RescanChanged() { - EntryRefSet::iterator iterator = fRescanEntries.begin(); - - while (iterator != fRescanEntries.end()) { + while (!fRescanEntries.empty()) { + EntryRefSet::iterator iterator = fRescanEntries.begin(); int32 count; CreateTranslators(*iterator, count); fRescanEntries.erase(iterator); - iterator++; } } @@ -1002,7 +1000,8 @@ BTranslatorRoster::Private::_IsKnownDirectory(const node_ref& nodeRef) const void -BTranslatorRoster::Private::_RemoveTranslators(const node_ref* nodeRef, const entry_ref* ref) +BTranslatorRoster::Private::_RemoveTranslators(const node_ref* nodeRef, + const entry_ref* ref) { if (ref == NULL && nodeRef == NULL) return; @@ -1012,6 +1011,9 @@ BTranslatorRoster::Private::_RemoveTranslators(const node_ref* nodeRef, const en image_id image = -1; while (iterator != fTranslators.end()) { + TranslatorMap::iterator next = iterator; + next++; + const translator_item& item = iterator->second; if ((ref != NULL && item.ref == *ref) || (nodeRef != NULL && item.ref.device == nodeRef->device @@ -1026,7 +1028,7 @@ BTranslatorRoster::Private::_RemoveTranslators(const node_ref* nodeRef, const en fTranslators.erase(iterator); } - iterator++; + iterator = next; } // Unload image from the removed translator