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

Commit 32c19c8e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Prevent modifying mAudioPolicies during iteration"

parents 65809d17 6f837517
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -1572,6 +1572,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) {
@@ -1579,7 +1580,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) {
@@ -1587,10 +1588,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