• Christopher Cameron's avatar
    CATransactionGPUCoordinator: Re-enable and make lifetime explicit · 62892558
    Christopher Cameron authored
    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: default avatarAntoine Labour <piman@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#582378}
    62892558
ca_transaction_observer.mm 4.39 KB