diff options
| author | 2017-10-13 17:18:58 -0700 | |
|---|---|---|
| committer | 2017-10-13 17:18:58 -0700 | |
| commit | 6308584dd73ece4f3f95b93873455d5969be9cc5 (patch) | |
| tree | 8327ce6a36d9c7093c3f0cfedc10c613cf1c896f | |
| parent | a7963492dd6e8e3a155d3593a582cb2f017ef920 (diff) | |
Fix regression from ag/2987716
- Removing some tasks can trigger the list to be updated (for the removed
task), ensure that we iterate the list backwards so that iteration is
not affected by any removed tasks.
Bug: 67785147
Test: Just reverting some code
Change-Id: If8afc222f62656cbf5404bcf79c70833514103e7
Signed-off-by: Winson Chung <winsonc@google.com>
| -rw-r--r-- | services/core/java/com/android/server/am/RecentTasks.java | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/am/RecentTasks.java b/services/core/java/com/android/server/am/RecentTasks.java index 8fef6bea1c3b..78274bdc0e03 100644 --- a/services/core/java/com/android/server/am/RecentTasks.java +++ b/services/core/java/com/android/server/am/RecentTasks.java @@ -427,8 +427,7 @@ class RecentTasks { } void removeTasksByPackageName(String packageName, int userId) { - final int size = mTasks.size(); - for (int i = 0; i < size; i++) { + for (int i = mTasks.size() - 1; i >= 0; --i) { final TaskRecord tr = mTasks.get(i); final String taskPackageName = tr.getBaseIntent().getComponent().getPackageName(); @@ -441,8 +440,7 @@ class RecentTasks { void cleanupDisabledPackageTasksLocked(String packageName, Set<String> filterByClasses, int userId) { - final int size = mTasks.size(); - for (int i = 0; i < size; i++) { + for (int i = mTasks.size() - 1; i >= 0; --i) { final TaskRecord tr = mTasks.get(i); if (userId != UserHandle.USER_ALL && tr.userId != userId) { continue; |