summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Winson Chung <winsonc@google.com> 2017-10-13 17:18:58 -0700
committer Winson Chung <winsonc@google.com> 2017-10-13 17:18:58 -0700
commit6308584dd73ece4f3f95b93873455d5969be9cc5 (patch)
tree8327ce6a36d9c7093c3f0cfedc10c613cf1c896f
parenta7963492dd6e8e3a155d3593a582cb2f017ef920 (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.java6
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;