diff options
| author | Ruben Brunk <rubenbrunk@google.com> | 2015-05-14 21:12:21 +0000 | 
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-14 21:12:21 +0000 | 
| commit | 24fdd7a48ad8ef66f1e91567a9f7f4d8f89faa7f (patch) | |
| tree | 12fd8bd33552ec216e238c69e62ea4d97624484e /services | |
| parent | e6858d597ca98ce7e68e10545dfb604ed572d46a (diff) | |
| parent | 8050721de77a64c7b53467c5959f0ea38d80cab3 (diff) | |
| download | frameworks_av-24fdd7a48ad8ef66f1e91567a9f7f4d8f89faa7f.zip frameworks_av-24fdd7a48ad8ef66f1e91567a9f7f4d8f89faa7f.tar.gz frameworks_av-24fdd7a48ad8ef66f1e91567a9f7f4d8f89faa7f.tar.bz2  | |
Merge "camera2: Fix empty set handling for eviction." into mnc-dev
Diffstat (limited to 'services')
| -rw-r--r-- | services/camera/libcameraservice/utils/ClientManager.h | 20 | 
1 files changed, 11 insertions, 9 deletions
diff --git a/services/camera/libcameraservice/utils/ClientManager.h b/services/camera/libcameraservice/utils/ClientManager.h index aa40a2d..5afb7a3 100644 --- a/services/camera/libcameraservice/utils/ClientManager.h +++ b/services/camera/libcameraservice/utils/ClientManager.h @@ -432,15 +432,17 @@ std::vector<std::shared_ptr<ClientDescriptor<KEY, VALUE>>> ClientManager<KEY, VA      auto iter = evicted.cbegin(); -    // Remove evicted clients from list -    mClients.erase(std::remove_if(mClients.begin(), mClients.end(), -        [&iter] (std::shared_ptr<ClientDescriptor<KEY, VALUE>>& curClientPtr) { -            if (curClientPtr->getKey() == (*iter)->getKey()) { -                iter++; -                return true; -            } -            return false; -        }), mClients.end()); +    if (iter != evicted.cend()) { +        // Remove evicted clients from list +        mClients.erase(std::remove_if(mClients.begin(), mClients.end(), +            [&iter] (std::shared_ptr<ClientDescriptor<KEY, VALUE>>& curClientPtr) { +                if (curClientPtr->getKey() == (*iter)->getKey()) { +                    iter++; +                    return true; +                } +                return false; +            }), mClients.end()); +    }      mClients.push_back(client);      mRemovedCondition.broadcast();  | 
