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

Skip to content
Commit 4ac59489 authored by Jan Sebechlebsky's avatar Jan Sebechlebsky
Browse files

Fix ContextImpl leak in ActivityThread.

ActivityThread caches system ui contexts per display,
but never removes them when the corresponding displays
are removed.

This is especially problematic with VirtualDisplay-s and ActivityThread
instance used in system server.

This cl modifies the cache to use WeakRef and allow instances to
be garbage collected.

Also, since the context can be moved between the displays, it's possible
that the cached instance doesn't correspond to the display in the
SparseArray key at the moment it's fetched.

This cl stores the instances in the simple array list
(The number of instances at the same time should be low, and we
would anyway need to traverse the whole SparseArray to check for
moved instances).

Bug: 330472805
Test: verifying heapdump after atest CtsVirtualDevicesAppLaunchTestCases --iterations 10
Change-Id: I8811945560381653cac8363d4086f87d253e22db
parent dcfc1a87
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment