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

Commit ea5d4369 authored by Yasin Kilicdere's avatar Yasin Kilicdere Committed by Android (Google) Code Review
Browse files

Merge "Fixes collection modified while iterating by cloning the collection."

parents 9c37b89c 8beafe3a
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -667,9 +667,11 @@ class MediaRouter2ServiceImpl {
                                "userId: %d", newActiveUserId));

                mCurrentActiveUserId = newActiveUserId;
                for (int i = 0; i < mUserRecords.size(); i++) {
                    int userId = mUserRecords.keyAt(i);
                    UserRecord userRecord = mUserRecords.valueAt(i);
                // disposeUserIfNeededLocked might modify the collection, hence clone
                final var userRecords = mUserRecords.clone();
                for (int i = 0; i < userRecords.size(); i++) {
                    int userId = userRecords.keyAt(i);
                    UserRecord userRecord = userRecords.valueAt(i);
                    if (isUserActiveLocked(userId)) {
                        // userId corresponds to the active user, or one of its profiles. We
                        // ensure the associated structures are initialized.
+5 −3
Original line number Diff line number Diff line
@@ -638,9 +638,11 @@ public final class MediaRouterService extends IMediaRouterService.Stub
        synchronized (mLock) {
            if (mCurrentActiveUserId != newActiveUserId) {
                mCurrentActiveUserId = newActiveUserId;
                for (int i = 0; i < mUserRecords.size(); i++) {
                    int userId = mUserRecords.keyAt(i);
                    UserRecord userRecord = mUserRecords.valueAt(i);
                // disposeUserIfNeededLocked might modify the collection, hence clone
                final var userRecords = mUserRecords.clone();
                for (int i = 0; i < userRecords.size(); i++) {
                    int userId = userRecords.keyAt(i);
                    UserRecord userRecord = userRecords.valueAt(i);
                    if (isUserActiveLocked(userId)) {
                        // userId corresponds to the active user, or one of its profiles. We
                        // ensure the associated structures are initialized.