am f70f60c4
: am 7d19d795
: am b41b85dc
: am c74500f4
: Merge "Fix NPE due to missing ProcessItem.mPackageInfo"
* commit 'f70f60c4dcfa576ea4ca9eda88eb1f258d1b38f1': Fix NPE due to missing ProcessItem.mPackageInfo
This commit is contained in:
@@ -776,6 +776,7 @@ public class RunningState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Look for services and their primary processes that no longer exist...
|
// Look for services and their primary processes that no longer exist...
|
||||||
|
ArrayList<Integer> uidToDelete = null;
|
||||||
for (int i=0; i<mServiceProcessesByName.size(); i++) {
|
for (int i=0; i<mServiceProcessesByName.size(); i++) {
|
||||||
HashMap<String, ProcessItem> procs = mServiceProcessesByName.valueAt(i);
|
HashMap<String, ProcessItem> procs = mServiceProcessesByName.valueAt(i);
|
||||||
Iterator<ProcessItem> pit = procs.values().iterator();
|
Iterator<ProcessItem> pit = procs.values().iterator();
|
||||||
@@ -792,7 +793,10 @@ public class RunningState {
|
|||||||
changed = true;
|
changed = true;
|
||||||
pit.remove();
|
pit.remove();
|
||||||
if (procs.size() == 0) {
|
if (procs.size() == 0) {
|
||||||
mServiceProcessesByName.remove(mServiceProcessesByName.keyAt(i));
|
if (uidToDelete == null) {
|
||||||
|
uidToDelete = new ArrayList<Integer>();
|
||||||
|
}
|
||||||
|
uidToDelete.add(mServiceProcessesByName.keyAt(i));
|
||||||
}
|
}
|
||||||
if (pi.mPid != 0) {
|
if (pi.mPid != 0) {
|
||||||
mServiceProcessesByPid.remove(pi.mPid);
|
mServiceProcessesByPid.remove(pi.mPid);
|
||||||
@@ -810,6 +814,13 @@ public class RunningState {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (uidToDelete != null) {
|
||||||
|
for (int i = 0; i < uidToDelete.size(); i++) {
|
||||||
|
int uid = uidToDelete.get(i);
|
||||||
|
mServiceProcessesByName.remove(uid);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
// First determine an order for the services.
|
// First determine an order for the services.
|
||||||
ArrayList<ProcessItem> sortedProcesses = new ArrayList<ProcessItem>();
|
ArrayList<ProcessItem> sortedProcesses = new ArrayList<ProcessItem>();
|
||||||
|
Reference in New Issue
Block a user