OSDN Git Service

Potential fix for NPE in Running services.
authorAmith Yamasani <yamasani@google.com>
Fri, 2 Dec 2011 18:15:27 +0000 (10:15 -0800)
committerAmith Yamasani <yamasani@google.com>
Fri, 2 Dec 2011 18:15:27 +0000 (10:15 -0800)
Bug: 5698270

Loop was removing items from the list being iterated.

Change-Id: I39e98c554b2fe6024381afbe79b737b812e78f08

src/com/android/settings/applications/RunningState.java

index beb9605..1b5310d 100644 (file)
@@ -815,7 +815,7 @@ public class RunningState {
         // Build the chains from client processes to the process they are
         // dependent on; also remove any old running processes.
         int NRP = mRunningProcesses.size();
-        for (int i=0; i<NRP; i++) {
+        for (int i = 0; i < NRP;) {
             ProcessItem proc = mRunningProcesses.valueAt(i);
             if (proc.mRunningSeq == mSequence) {
                 int clientPid = proc.mRunningProcessInfo.importanceReasonPid;
@@ -833,9 +833,11 @@ public class RunningState {
                     // we will detect the change.
                     proc.mClient = null;
                 }
+                i++;
             } else {
                 changed = true;
                 mRunningProcesses.remove(mRunningProcesses.keyAt(i));
+                NRP--;
             }
         }