From 287bd83f9ea257594e0d483d3851236139e5744e Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Sat, 28 May 2011 19:36:26 -0700 Subject: Snapshot PID/UID when enqueuing events. Since ProcessRecord can change before event is processed, snapshot PID/UID values when enqueuing. Change-Id: I281e63310c8fc6c3761ae00e80e06654b18b3e17 --- .../android/server/am/ActivityManagerService.java | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/java/com/android/server/am/ActivityManagerService.java index b463e560aca4..5f520562bf67 100644 --- a/services/java/com/android/server/am/ActivityManagerService.java +++ b/services/java/com/android/server/am/ActivityManagerService.java @@ -25,7 +25,6 @@ import com.android.server.ProcessStats; import com.android.server.SystemServer; import com.android.server.Watchdog; import com.android.server.am.ActivityStack.ActivityState; -import com.android.server.net.NetworkPolicyManagerService; import com.android.server.wm.WindowManagerService; import dalvik.system.Zygote; @@ -1301,15 +1300,16 @@ public final class ActivityManagerService extends ActivityManagerNative break; } case DISPATCH_FOREGROUND_ACTIVITIES_CHANGED: { - final ProcessRecord app = (ProcessRecord) msg.obj; - final boolean foregroundActivities = msg.arg1 != 0; - dispatchForegroundActivitiesChanged( - app.pid, app.info.uid, foregroundActivities); + final int pid = msg.arg1; + final int uid = msg.arg2; + final boolean foregroundActivities = (Boolean) msg.obj; + dispatchForegroundActivitiesChanged(pid, uid, foregroundActivities); break; } case DISPATCH_PROCESS_DIED: { - final ProcessRecord app = (ProcessRecord) msg.obj; - dispatchProcessDied(app.pid, app.info.uid); + final int pid = msg.arg1; + final int uid = msg.arg2; + dispatchProcessDied(pid, uid); break; } } @@ -9260,7 +9260,7 @@ public final class ActivityManagerService extends ActivityManagerNative } } - mHandler.obtainMessage(DISPATCH_PROCESS_DIED, app).sendToTarget(); + mHandler.obtainMessage(DISPATCH_PROCESS_DIED, app.pid, app.info.uid, null).sendToTarget(); // If the caller is restarting this app, then leave it in its // current lists and let the caller take care of it. @@ -12821,8 +12821,8 @@ public final class ActivityManagerService extends ActivityManagerNative app.curSchedGroup = schedGroup; if (hadForegroundActivities != app.foregroundActivities) { - mHandler.obtainMessage(DISPATCH_FOREGROUND_ACTIVITIES_CHANGED, - app.foregroundActivities ? 1 : 0, 0, app).sendToTarget(); + mHandler.obtainMessage(DISPATCH_FOREGROUND_ACTIVITIES_CHANGED, app.pid, app.info.uid, + app.foregroundActivities).sendToTarget(); } return adj; -- cgit v1.2.3-59-g8ed1b