AudioManager: fix event handler
Fix access by reference to listener list outside of synchronized block by cloning the list. Bug: 154341343 Test: AudioPolicyTest#testAudioPorts, AudioManagerTest#testVolumeGroupCallback, AudioRoutingTest Change-Id: I1f0fd62c1894dc0dbb07b01f2fd78899e48b4932
This commit is contained in:
@@ -78,7 +78,8 @@ class AudioPortEventHandler {
|
||||
listeners.add((AudioManager.OnAudioPortUpdateListener)msg.obj);
|
||||
}
|
||||
} else {
|
||||
listeners = mListeners;
|
||||
listeners = (ArrayList<AudioManager.OnAudioPortUpdateListener>)
|
||||
mListeners.clone();
|
||||
}
|
||||
}
|
||||
// reset audio port cache if the event corresponds to a change coming
|
||||
|
||||
@@ -80,7 +80,8 @@ public class AudioVolumeGroupChangeHandler {
|
||||
(AudioManager.VolumeGroupCallback) msg.obj);
|
||||
}
|
||||
} else {
|
||||
listeners = mListeners;
|
||||
listeners = (ArrayList<AudioManager.VolumeGroupCallback>)
|
||||
mListeners.clone();
|
||||
}
|
||||
}
|
||||
if (listeners.isEmpty()) {
|
||||
|
||||
Reference in New Issue
Block a user