OSDN Git Service

Don't iterate over a list items are removed from.
authorJulia Reynolds <juliacr@google.com>
Tue, 21 Jun 2016 11:47:22 +0000 (07:47 -0400)
committerJulia Reynolds <juliacr@google.com>
Wed, 22 Jun 2016 16:34:06 +0000 (16:34 +0000)
Change-Id: I896cd4578da15e21d422ca8db42e34bbd10912e8
Fixes: 29512540

services/core/java/com/android/server/notification/NotificationManagerService.java

index ce94220..73850de 100644 (file)
@@ -3898,7 +3898,9 @@ public class NotificationManagerService extends SystemService {
         @Override
         public void onUserSwitched(int user) {
             synchronized (mNotificationList) {
-                for (ManagedServiceInfo info : mServices) {
+                int i = mServices.size()-1;
+                while (i --> 0) {
+                    final ManagedServiceInfo info = mServices.get(i);
                     unregisterService(info.service, info.userid);
                 }
             }