EffectBase: Make callback getter/setter atomic
Plain sp<> not thread-safe for concurrent set and get.
Test: AudioEffectTest
Test: AudioPreProcessingTest
Test: BassBoostTest
Test: EnvReverbTest
Test: EqualizerTest
Test: LoudnessEnhancerTest
Test: PresetReverbTest
Test: VirtualizerTest
Test: VisualizerTest
Bug: 190024493
Change-Id: Ic65f8eabe21453aefefbdd0080e66d9cb7184f43
diff --git a/services/audioflinger/AudioFlinger.cpp b/services/audioflinger/AudioFlinger.cpp
index a89088a..8e0de7e 100644
--- a/services/audioflinger/AudioFlinger.cpp
+++ b/services/audioflinger/AudioFlinger.cpp
@@ -3996,7 +3996,7 @@
// if the move request is not received from audio policy manager, the effect must be
// re-registered with the new strategy and output
if (dstChain == 0) {
- dstChain = effect->callback()->chain().promote();
+ dstChain = effect->getCallback()->chain().promote();
if (dstChain == 0) {
ALOGW("moveEffectChain_l() cannot get chain from effect %p", effect.get());
status = NO_INIT;
@@ -4046,7 +4046,7 @@
goto Exit;
}
- dstChain = effect->callback()->chain().promote();
+ dstChain = effect->getCallback()->chain().promote();
if (dstChain == 0) {
thread->addEffect_l(effect);
status = INVALID_OPERATION;