diff options
author | Eric Laurent <elaurent@google.com> | 2009-12-07 12:37:02 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-12-07 12:37:02 -0800 |
commit | 5252f65e341870fdc197ab8d4b773c8d123076f0 (patch) | |
tree | 3f3023f46d3175338b61a81c9503d308c0670f2d | |
parent | a4dde1da5f8663fea34fe538900e78611cb48f4f (diff) | |
parent | 0a08029fc9a370c6ef2a2a6fd1d800d9159b61f8 (diff) | |
download | frameworks_base-5252f65e341870fdc197ab8d4b773c8d123076f0.zip frameworks_base-5252f65e341870fdc197ab8d4b773c8d123076f0.tar.gz frameworks_base-5252f65e341870fdc197ab8d4b773c8d123076f0.tar.bz2 |
am 0a08029f: Fix issue 2306779: Runtime restart - Init failed at android.media.ToneGenerator.
Merge commit '0a08029fc9a370c6ef2a2a6fd1d800d9159b61f8' into eclair-plus-aosp
* commit '0a08029fc9a370c6ef2a2a6fd1d800d9159b61f8':
Fix issue 2306779: Runtime restart - Init failed at android.media.ToneGenerator.
-rw-r--r-- | libs/audioflinger/AudioFlinger.cpp | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/libs/audioflinger/AudioFlinger.cpp b/libs/audioflinger/AudioFlinger.cpp index f3f6e4f..2024cc0 100644 --- a/libs/audioflinger/AudioFlinger.cpp +++ b/libs/audioflinger/AudioFlinger.cpp @@ -1111,7 +1111,6 @@ void AudioFlinger::PlaybackThread::destroyTrack_l(const sp<Track>& track) { track->mState = TrackBase::TERMINATED; if (mActiveTracks.indexOf(track) < 0) { - LOGV("remove track (%d) and delete from mixer", track->name()); mTracks.remove(track); deleteTrackName_l(track->name()); } @@ -1511,6 +1510,7 @@ int AudioFlinger::MixerThread::getTrackName_l() // deleteTrackName_l() must be called with ThreadBase::mLock held void AudioFlinger::MixerThread::deleteTrackName_l(int name) { + LOGV("remove track (%d) and delete from mixer", name); mAudioMixer->deleteTrackName(name); } @@ -1922,6 +1922,9 @@ AudioFlinger::DuplicatingThread::DuplicatingThread(const sp<AudioFlinger>& audio AudioFlinger::DuplicatingThread::~DuplicatingThread() { + for (size_t i = 0; i < mOutputTracks.size(); i++) { + mOutputTracks[i]->destroy(); + } mOutputTracks.clear(); } @@ -2044,17 +2047,6 @@ bool AudioFlinger::DuplicatingThread::threadLoop() outputTracks.clear(); } - { // scope for the mLock - - Mutex::Autolock _l(mLock); - if (!mStandby) { - LOGV("DuplicatingThread() exiting out of standby"); - for (size_t i = 0; i < mOutputTracks.size(); i++) { - mOutputTracks[i]->destroy(); - } - } - } - return false; } |