Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 287bd83f authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Snapshot PID/UID when enqueuing events.

Since ProcessRecord can change before event is processed, snapshot
PID/UID values when enqueuing.

Change-Id: I281e63310c8fc6c3761ae00e80e06654b18b3e17
parent d840b665
Loading
Loading
Loading
Loading
+10 −10
Original line number Original line Diff line number Diff line
@@ -25,7 +25,6 @@ import com.android.server.ProcessStats;
import com.android.server.SystemServer;
import com.android.server.SystemServer;
import com.android.server.Watchdog;
import com.android.server.Watchdog;
import com.android.server.am.ActivityStack.ActivityState;
import com.android.server.am.ActivityStack.ActivityState;
import com.android.server.net.NetworkPolicyManagerService;
import com.android.server.wm.WindowManagerService;
import com.android.server.wm.WindowManagerService;
import dalvik.system.Zygote;
import dalvik.system.Zygote;
@@ -1301,15 +1300,16 @@ public final class ActivityManagerService extends ActivityManagerNative
                break;
                break;
            }
            }
            case DISPATCH_FOREGROUND_ACTIVITIES_CHANGED: {
            case DISPATCH_FOREGROUND_ACTIVITIES_CHANGED: {
                final ProcessRecord app = (ProcessRecord) msg.obj;
                final int pid = msg.arg1;
                final boolean foregroundActivities = msg.arg1 != 0;
                final int uid = msg.arg2;
                dispatchForegroundActivitiesChanged(
                final boolean foregroundActivities = (Boolean) msg.obj;
                        app.pid, app.info.uid, foregroundActivities);
                dispatchForegroundActivitiesChanged(pid, uid, foregroundActivities);
                break;
                break;
            }
            }
            case DISPATCH_PROCESS_DIED: {
            case DISPATCH_PROCESS_DIED: {
                final ProcessRecord app = (ProcessRecord) msg.obj;
                final int pid = msg.arg1;
                dispatchProcessDied(app.pid, app.info.uid);
                final int uid = msg.arg2;
                dispatchProcessDied(pid, uid);
                break;
                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
        // If the caller is restarting this app, then leave it in its
        // current lists and let the caller take care of it.
        // current lists and let the caller take care of it.
@@ -12821,8 +12821,8 @@ public final class ActivityManagerService extends ActivityManagerNative
        app.curSchedGroup = schedGroup;
        app.curSchedGroup = schedGroup;
        if (hadForegroundActivities != app.foregroundActivities) {
        if (hadForegroundActivities != app.foregroundActivities) {
            mHandler.obtainMessage(DISPATCH_FOREGROUND_ACTIVITIES_CHANGED,
            mHandler.obtainMessage(DISPATCH_FOREGROUND_ACTIVITIES_CHANGED, app.pid, app.info.uid,
                    app.foregroundActivities ? 1 : 0, 0, app).sendToTarget();
                    app.foregroundActivities).sendToTarget();
        }
        }
        return adj;
        return adj;