diff options
Diffstat (limited to 'gps/core')
-rw-r--r-- | gps/core/SystemStatusOsObserver.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gps/core/SystemStatusOsObserver.cpp b/gps/core/SystemStatusOsObserver.cpp index 0f6d228..8127e86 100644 --- a/gps/core/SystemStatusOsObserver.cpp +++ b/gps/core/SystemStatusOsObserver.cpp @@ -328,9 +328,12 @@ void SystemStatusOsObserver::notify(const list<IDataItemCore*>& dlist) for (auto client : clientSet) { unordered_set<DataItemId> dataItemIdsForThisClient( mParent->mClientToDataItems.getValSet(client)); - for (auto id : dataItemIdsForThisClient) { - if (dataItemIdsToBeSent.find(id) == dataItemIdsToBeSent.end()) { - dataItemIdsForThisClient.erase(id); + for (auto itr = dataItemIdsForThisClient.begin(); + itr != dataItemIdsForThisClient.end(); ) { + if (dataItemIdsToBeSent.find(*itr) == dataItemIdsToBeSent.end()) { + itr = dataItemIdsForThisClient.erase(itr); + } else { + itr++; } } |