summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2014-12-06 01:04:51 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-12-06 01:04:52 +0000
commit18265202049bfa53fe5b18a95d956325acca9c7b (patch)
tree5260bab90009d52dacdd82cad7d59630fadd0b64 /services
parenta147c17adabaab819ac108fbc448c49525cf74bc (diff)
parent0add0fd07401c507a77b37868f46a2ae587c30df (diff)
downloadframeworks_av-18265202049bfa53fe5b18a95d956325acca9c7b.zip
frameworks_av-18265202049bfa53fe5b18a95d956325acca9c7b.tar.gz
frameworks_av-18265202049bfa53fe5b18a95d956325acca9c7b.tar.bz2
Merge "audio policy: fix inifinite loop in clearAudioPatches()" into lmp-mr1-dev
Diffstat (limited to 'services')
-rw-r--r--services/audiopolicy/AudioPolicyManager.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/services/audiopolicy/AudioPolicyManager.cpp b/services/audiopolicy/AudioPolicyManager.cpp
index 3778704..8bb35f9 100644
--- a/services/audiopolicy/AudioPolicyManager.cpp
+++ b/services/audiopolicy/AudioPolicyManager.cpp
@@ -2650,13 +2650,10 @@ status_t AudioPolicyManager::setAudioPortConfig(const struct audio_port_config *
void AudioPolicyManager::clearAudioPatches(uid_t uid)
{
- for (ssize_t i = 0; i < (ssize_t)mAudioPatches.size(); i++) {
+ for (ssize_t i = (ssize_t)mAudioPatches.size() - 1; i >= 0; i--) {
sp<AudioPatch> patchDesc = mAudioPatches.valueAt(i);
if (patchDesc->mUid == uid) {
- // releaseAudioPatch() removes the patch from mAudioPatches
- if (releaseAudioPatch(mAudioPatches.keyAt(i), uid) == NO_ERROR) {
- i--;
- }
+ releaseAudioPatch(mAudioPatches.keyAt(i), uid);
}
}
}