diff options
| author | 2020-09-09 20:21:16 -0700 | |
|---|---|---|
| committer | 2020-09-09 20:21:16 -0700 | |
| commit | ac07d0f5ab16bb9e8bbbabb589d1c7d36817baa9 (patch) | |
| tree | f7110d50445c67a337105034b1f2db3946a88fef /services/surfaceflinger/ClientCache.cpp | |
| parent | 171cac1b603e4bb83412eb596d05a500af5d7a76 (diff) | |
| parent | c83049d93712f12279dbeabfa1857c1921804979 (diff) | |
Merge Android R
Bug: 168057903
Merged-In: I1428ead11c6c2d6fd107a014df0082fdbfa9ba8a
Change-Id: I7e084a4c5a3fd06152ea6f1bfe17c53f95faba79
Diffstat (limited to 'services/surfaceflinger/ClientCache.cpp')
| -rw-r--r-- | services/surfaceflinger/ClientCache.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/services/surfaceflinger/ClientCache.cpp b/services/surfaceflinger/ClientCache.cpp index 16fe27c00a..a5be01c75c 100644 --- a/services/surfaceflinger/ClientCache.cpp +++ b/services/surfaceflinger/ClientCache.cpp @@ -42,7 +42,7 @@ bool ClientCache::getBuffer(const client_cache_t& cacheId, return false; } - auto& processBuffers = it->second; + auto& processBuffers = it->second.second; auto bufItr = processBuffers.find(id); if (bufItr == processBuffers.end()) { @@ -86,12 +86,14 @@ bool ClientCache::add(const client_cache_t& cacheId, const sp<GraphicBuffer>& bu return false; } auto [itr, success] = - mBuffers.emplace(processToken, std::unordered_map<uint64_t, ClientCacheBuffer>()); + mBuffers.emplace(processToken, + std::make_pair(token, + std::unordered_map<uint64_t, ClientCacheBuffer>())); LOG_ALWAYS_FATAL_IF(!success, "failed to insert new process into client cache"); it = itr; } - auto& processBuffers = it->second; + auto& processBuffers = it->second.second; if (processBuffers.size() > BUFFER_CACHE_MAX_SIZE) { ALOGE("failed to cache buffer: cache is full"); @@ -120,7 +122,7 @@ void ClientCache::erase(const client_cache_t& cacheId) { } } - mBuffers[processToken].erase(id); + mBuffers[processToken].second.erase(id); } for (auto& recipient : pendingErase) { @@ -180,7 +182,7 @@ void ClientCache::removeProcess(const wp<IBinder>& processToken) { return; } - for (auto& [id, clientCacheBuffer] : itr->second) { + for (auto& [id, clientCacheBuffer] : itr->second.second) { client_cache_t cacheId = {processToken, id}; for (auto& recipient : clientCacheBuffer.recipients) { sp<ErasedRecipient> erasedRecipient = recipient.promote(); |