OSDN Git Service

Fix GraphicBuffer leaks in system_server
authorJorim Jaggi <jjaggi@google.com>
Tue, 16 May 2017 20:26:02 +0000 (22:26 +0200)
committerJorim Jaggi <jjaggi@google.com>
Wed, 17 May 2017 21:46:16 +0000 (23:46 +0200)
commit4448e1ebb2d00f31292abcc7c5161a4e6f050c2e
treec10a18931728211e2dda2ffe1de6e6cebfacb426
parent95cf170ce94f51e9455304207ab20d4bd7109697
Fix GraphicBuffer leaks in system_server

IWindowId is being kept alive by binder in certain cases, which
will leak WindowState, which can leak a whole lot including
the snapshot GraphicBuffer.

- Fix a leak in WindowContainer.mTmpChain1/2
- When the window gets removed, make sure to release the reference
to the window state so even if Binder keeps IWindowId alive, we
don't keep WindowState alive
- Make sure that even if we leak TaskSnapshotSurface we don't leak
the GraphicBuffer.

Test: Boot, some basic sanity testing.
Bug: 36279079
Change-Id: I4a0a784b32bc2df47934b1bed1d62b0682beb2dd
services/core/java/com/android/server/wm/TaskSnapshotSurface.java
services/core/java/com/android/server/wm/WindowContainer.java
services/core/java/com/android/server/wm/WindowState.java