OSDN Git Service

audioflinger: fix regression in attachAuxEffect().
authorEric Laurent <elaurent@google.com>
Mon, 2 Jul 2012 19:31:03 +0000 (12:31 -0700)
committerEric Laurent <elaurent@google.com>
Mon, 2 Jul 2012 19:31:03 +0000 (12:31 -0700)
Commit 717e1286 introduced a regression in PlaybackThread::Track::attachAuxEffect()
when called with an effect ID of 0 to detach the auxiliary effect.

It is normal in this case that AudioFlinger::getEffectThread_l() returns 0.

Bug 6768757.

Change-Id: I7430bd1aad2f68da38f7c3e4794e7ad657bfc6be

services/audioflinger/AudioFlinger.cpp

index abe0293..aab9984 100644 (file)
@@ -4696,11 +4696,8 @@ status_t AudioFlinger::PlaybackThread::Track::attachAuxEffect(int EffectId)
         Mutex::Autolock _l(af->mLock);
 
         sp<PlaybackThread> srcThread = af->getEffectThread_l(AUDIO_SESSION_OUTPUT_MIX, EffectId);
-        if (srcThread == 0) {
-            return INVALID_OPERATION;
-        }
 
-        if (EffectId != 0 && playbackThread != srcThread.get()) {
+        if (EffectId != 0 && srcThread != 0 && playbackThread != srcThread.get()) {
             Mutex::Autolock _dl(playbackThread->mLock);
             Mutex::Autolock _sl(srcThread->mLock);
             sp<EffectChain> chain = srcThread->getEffectChain_l(AUDIO_SESSION_OUTPUT_MIX);