Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f3a10cd2 authored by Eric Laurent's avatar Eric Laurent
Browse files

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
parent a29a359c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -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
+2 −1
Original line number Diff line number Diff line
@@ -80,7 +80,8 @@ public class AudioVolumeGroupChangeHandler {
                                        (AudioManager.VolumeGroupCallback) msg.obj);
                            }
                        } else {
                            listeners = mListeners;
                            listeners = (ArrayList<AudioManager.VolumeGroupCallback>)
                                    mListeners.clone();
                        }
                    }
                    if (listeners.isEmpty()) {