summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/com/android/internal/app/ProcessStats.java10
1 files changed, 7 insertions, 3 deletions
diff --git a/core/java/com/android/internal/app/ProcessStats.java b/core/java/com/android/internal/app/ProcessStats.java
index 1f55a4cebeeb..07854e20f8af 100644
--- a/core/java/com/android/internal/app/ProcessStats.java
+++ b/core/java/com/android/internal/app/ProcessStats.java
@@ -983,7 +983,7 @@ public final class ProcessStats implements Parcelable {
PackageState pkgState = uids.valueAt(iu);
for (int iproc=pkgState.mProcesses.size()-1; iproc>=0; iproc--) {
ProcessState ps = pkgState.mProcesses.valueAt(iproc);
- if (ps.isInUse()) {
+ if (ps.isInUse() || ps.mCommonProcess.isInUse()) {
pkgState.mProcesses.valueAt(iproc).resetSafely(now);
} else {
pkgState.mProcesses.removeAt(iproc);
@@ -2496,8 +2496,12 @@ public final class ProcessStats implements Parcelable {
// The array map is still pointing to a common process state
// that is now shared across packages. Update it to point to
// the new per-package state.
- proc = mStats.mPackages.get(pkgList.keyAt(index),
- proc.mUid).mProcesses.get(proc.mName);
+ PackageState pkg = mStats.mPackages.get(pkgList.keyAt(index), proc.mUid);
+ if (pkg == null) {
+ throw new IllegalStateException("No existing package "
+ + pkgList.keyAt(index) + " for multi-proc" + proc.mName);
+ }
+ proc = pkg.mProcesses.get(proc.mName);
if (proc == null) {
throw new IllegalStateException("Didn't create per-package process");
}