summaryrefslogtreecommitdiff
path: root/libs/androidfw/AttributeResolution.cpp
diff options
context:
space:
mode:
author Riddle Hsu <riddlehsu@google.com> 2022-03-07 22:14:48 +0800
committer Riddle Hsu <riddlehsu@google.com> 2022-03-07 22:19:10 +0800
commitdb6d13cea7b1162c501d34aab372c9d74cbc4db7 (patch)
tree3d3f198128dd486d936941dae313b8e955e24c87 /libs/androidfw/AttributeResolution.cpp
parent1be9ef4fbeddf469340545074d84c4b0be00f04c (diff)
Fix incomplete removal of nested task
For example: T0 - T1 - A1 <- iterator T2 - A2 After calling A1.finishIfPossible(), the order may change to T0 - T2 - A2 T1 - A1 <- iterator So A1 is finished twice (no-op) and T0 can not be removed because A2 is still alive. This part is solved by using a list to collect first. And change the cleanup order to from bottom to top, which avoid some unnecessary focus adjusting. Another problem is that when removing last task of a parent task, it only checks !mCreatedByOrganizer, so the removal request is ignored. This is fixed by checking shouldRemoveSelfOnLastChildRemoval. Fixes: 222722020 Test: atest TaskTests#testRemoveContainer_multipleNestedTasks Change-Id: I3a5cb17be57fae758f57e2d2c669cc3727346ff8
Diffstat (limited to 'libs/androidfw/AttributeResolution.cpp')
0 files changed, 0 insertions, 0 deletions