CATransactionGPUCoordinator: Re-enable and make lifetime explicit
Disalbing the CATransactionGPUCoordinator caused memory corruption bugs
to go away.
Fix two potential bugs:
1. Don't post tasks (and potentially change the reference count) inside
CATransactionGPUCoordinator's constructor. Do this in a separate
explicit Init function.
1a. Move this initialization to the end of GpuProcessHost:Init (instead
of being at the beginning of the constructor).
2. Make CATransactionCoordinator explicitly retain PostCommitObserver
(which includes CATransactionGPUCoordinator). This fixes a bug
whereby at shutdown, destroying not-yet-executed posted tasks caused
the CATransactionGPUCoordinator to be destroyed while the
CATransactionCoordinator still had a raw pointer to it.
Bug: 871430
Change-Id: Ie144071cce9ce48e0187cdaf1fcf32df7b62ed75
Reviewed-on: https://chromium-review.googlesource.com/1171657
Commit-Queue: ccameron <ccameron@chromium.org>
Reviewed-by:
Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582378}
Showing
Please register or sign in to comment