diff options
author | Ronghua Wu <ronghuawu@google.com> | 2015-07-15 12:23:48 -0700 |
---|---|---|
committer | Ronghua Wu <ronghuawu@google.com> | 2015-07-17 10:19:21 -0700 |
commit | 37c8924c508a7c9b8bd3c8ce80fc005070531902 (patch) | |
tree | 0ed47e0ceb97bcdf6169e1189f0f555b6c2bd89c /services/mediaresourcemanager/ResourceManagerService.cpp | |
parent | 495151d3f4c5f92f1d162efb32b636521c105df5 (diff) | |
download | frameworks_av-37c8924c508a7c9b8bd3c8ce80fc005070531902.zip frameworks_av-37c8924c508a7c9b8bd3c8ce80fc005070531902.tar.gz frameworks_av-37c8924c508a7c9b8bd3c8ce80fc005070531902.tar.bz2 |
mediaresourcemanager: add pid to removeResource method
Bug: 22496209
Change-Id: I73311573e8d1ac15fec668a9ef6e6af7a07a1d30
Diffstat (limited to 'services/mediaresourcemanager/ResourceManagerService.cpp')
-rw-r--r-- | services/mediaresourcemanager/ResourceManagerService.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/services/mediaresourcemanager/ResourceManagerService.cpp b/services/mediaresourcemanager/ResourceManagerService.cpp index 61147ff..e54cc5a 100644 --- a/services/mediaresourcemanager/ResourceManagerService.cpp +++ b/services/mediaresourcemanager/ResourceManagerService.cpp @@ -179,23 +179,24 @@ void ResourceManagerService::addResource( info.resources.appendVector(resources); } -void ResourceManagerService::removeResource(int64_t clientId) { - String8 log = String8::format("removeResource(%lld)", (long long) clientId); +void ResourceManagerService::removeResource(int pid, int64_t clientId) { + String8 log = String8::format( + "removeResource(pid %d, clientId %lld)", + pid, (long long) clientId); mServiceLog->add(log); Mutex::Autolock lock(mLock); + ssize_t index = mMap.indexOfKey(pid); + if (index < 0) { + ALOGV("removeResource: didn't find pid %d for clientId %lld", pid, (long long) clientId); + return; + } bool found = false; - for (size_t i = 0; i < mMap.size(); ++i) { - ResourceInfos &infos = mMap.editValueAt(i); - for (size_t j = 0; j < infos.size();) { - if (infos[j].clientId == clientId) { - j = infos.removeAt(j); - found = true; - } else { - ++j; - } - } - if (found) { + ResourceInfos &infos = mMap.editValueAt(index); + for (size_t j = 0; j < infos.size(); ++j) { + if (infos[j].clientId == clientId) { + j = infos.removeAt(j); + found = true; break; } } |