summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libs/audioflinger/AudioFlinger.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/libs/audioflinger/AudioFlinger.cpp b/libs/audioflinger/AudioFlinger.cpp
index 77a126c..3a419b5 100644
--- a/libs/audioflinger/AudioFlinger.cpp
+++ b/libs/audioflinger/AudioFlinger.cpp
@@ -136,8 +136,17 @@ AudioFlinger::AudioFlinger()
AudioFlinger::~AudioFlinger()
{
- mRecordThreads.clear();
- mPlaybackThreads.clear();
+ while (!mRecordThreads.isEmpty()) {
+ // closeInput() will remove first entry from mRecordThreads
+ closeInput(mRecordThreads.keyAt(0));
+ }
+ while (!mPlaybackThreads.isEmpty()) {
+ // closeOutput() will remove first entry from mPlaybackThreads
+ closeOutput(mPlaybackThreads.keyAt(0));
+ }
+ if (mAudioHardware) {
+ delete mAudioHardware;
+ }
}