Merge "audiopolicy: Fix to close all opened inputs in closeAllInputs"
diff --git a/policy_hal/AudioPolicyManager.cpp b/policy_hal/AudioPolicyManager.cpp
index 85a7393..8d32f66 100644
--- a/policy_hal/AudioPolicyManager.cpp
+++ b/policy_hal/AudioPolicyManager.cpp
@@ -1913,8 +1913,8 @@
void AudioPolicyManagerCustom::closeAllInputs() {
bool patchRemoved = false;
- for(size_t input_index = 0; input_index < mInputs.size(); input_index++) {
- sp<AudioInputDescriptor> inputDesc = mInputs.valueAt(input_index);
+ for(size_t input_index = mInputs.size(); input_index > 0; input_index--) {
+ sp<AudioInputDescriptor> inputDesc = mInputs.valueAt(input_index-1);
ssize_t patch_index = mAudioPatches.indexOfKey(inputDesc->mPatchHandle);
if (patch_index >= 0) {
sp<AudioPatch> patchDesc = mAudioPatches.valueAt(patch_index);
@@ -1925,8 +1925,8 @@
if ((inputDesc->mIsSoundTrigger) && (mInputs.size() == 1)) {
ALOGD("Do not close sound trigger input handle");
} else {
- mpClientInterface->closeInput(mInputs.keyAt(input_index));
- mInputs.removeItem(mInputs.keyAt(input_index));
+ mpClientInterface->closeInput(mInputs.keyAt(input_index-1));
+ mInputs.removeItem(mInputs.keyAt(input_index-1));
}
}
nextAudioPortGeneration();