audioflinger: fix audio patch release
Fix error in PatchPanel:releaseAudioPatch() causing
the wrong patch handle to be passed to the audio HAL.
Bug: 17368621.
Change-Id: I037fd2e6273508c830414b5900d07c0178b96dae
diff --git a/services/audioflinger/PatchPanel.cpp b/services/audioflinger/PatchPanel.cpp
index 2d0a25f..7544052 100644
--- a/services/audioflinger/PatchPanel.cpp
+++ b/services/audioflinger/PatchPanel.cpp
@@ -593,10 +593,10 @@
status = BAD_VALUE;
break;
}
- status = thread->sendReleaseAudioPatchConfigEvent(mPatches[index]->mHalHandle);
+ status = thread->sendReleaseAudioPatchConfigEvent(removedPatch->mHalHandle);
} else {
audio_hw_device_t *hwDevice = audioHwDevice->hwDevice();
- status = hwDevice->release_audio_patch(hwDevice, mPatches[index]->mHalHandle);
+ status = hwDevice->release_audio_patch(hwDevice, removedPatch->mHalHandle);
}
} else {
sp<ThreadBase> thread = audioflinger->checkRecordThread_l(
@@ -632,7 +632,7 @@
}
AudioHwDevice *audioHwDevice = audioflinger->mAudioHwDevs.valueAt(index);
if (audioHwDevice->version() >= AUDIO_DEVICE_API_VERSION_3_0) {
- status = thread->sendReleaseAudioPatchConfigEvent(mPatches[index]->mHalHandle);
+ status = thread->sendReleaseAudioPatchConfigEvent(removedPatch->mHalHandle);
} else {
AudioParameter param;
param.addInt(String8(AUDIO_PARAMETER_STREAM_ROUTING), 0);