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

Commit 7926ae7f authored by Atneya Nair's avatar Atneya Nair Committed by Android (Google) Code Review
Browse files

Merge "Prevent modifying mAudioPolicies during iteration" into tm-qpr-dev

parents 4c8cb702 65b89804
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1614,6 +1614,7 @@ public class AudioService extends IAudioService.Stub
        }
        synchronized (mAudioPolicies) {
            ArrayList<AudioPolicyProxy> invalidProxies = new ArrayList<>();
            for (AudioPolicyProxy policy : mAudioPolicies.values()) {
                final int status = policy.connectMixes();
                if (status != AudioSystem.SUCCESS) {
@@ -1621,7 +1622,7 @@ public class AudioService extends IAudioService.Stub
                    Log.e(TAG, "onAudioServerDied: error "
                            + AudioSystem.audioSystemErrorToString(status)
                            + " when connecting mixes for policy " + policy.toLogFriendlyString());
                    policy.release();
                    invalidProxies.add(policy);
                } else {
                    final int deviceAffinitiesStatus = policy.setupDeviceAffinities();
                    if (deviceAffinitiesStatus != AudioSystem.SUCCESS) {
@@ -1629,10 +1630,12 @@ public class AudioService extends IAudioService.Stub
                                + AudioSystem.audioSystemErrorToString(deviceAffinitiesStatus)
                                + " when connecting device affinities for policy "
                                + policy.toLogFriendlyString());
                        policy.release();
                        invalidProxies.add(policy);
                    }
                }
            }
            invalidProxies.forEach((policy) -> policy.release());
        }
        // Restore capture policies