Call Surface.release() for starting windows
If the window maanger received BinderDied for a starting window
before activity manager then it would null
AppWindowToken.startingWindow and not go through the
PhoneWindowManager.removeStartingWindow call later. That meant that
Surface.release() was never called from
ViewRootImpl.dispatchDetachedFromWindow(). Which in turn meant that
graphics memory was being leaked.
This change notifies the PhoneWindowManager to go through the
removeStartingWindow path when the starting window gets removed for
any reason.
This change also ensures that scheduleRemoveStartingWindow is
always called with the window manager lock held.
Fixes bug 17381033.
Change-Id: Ic6860d0e1410c9bb5053d85ae21a08b11f573b6d
2 files changed