| Index: services/gfx/compositor/compositor_engine.cc
|
| diff --git a/services/gfx/compositor/compositor_engine.cc b/services/gfx/compositor/compositor_engine.cc
|
| index 1e18866258072d708d9413e00d9b4b1896c5748f..8ad5b0f36e45dfd569a199045a8de32cfedc89d0 100644
|
| --- a/services/gfx/compositor/compositor_engine.cc
|
| +++ b/services/gfx/compositor/compositor_engine.cc
|
| @@ -83,14 +83,18 @@ void CompositorEngine::DestroyScene(SceneState* scene_state) {
|
| }
|
|
|
| // Destroy any renderers using this scene.
|
| + std::vector<RendererState*> renderers_to_destroy;
|
| for (auto& renderer : renderers_) {
|
| if (renderer->root_scene() == scene_state) {
|
| - LOG(ERROR) << "Destroying renderer whose root scene has become "
|
| - "unavailable: renderer="
|
| - << renderer;
|
| - DestroyRenderer(renderer);
|
| + renderers_to_destroy.emplace_back(renderer);
|
| }
|
| }
|
| + for (auto& renderer : renderers_to_destroy) {
|
| + LOG(ERROR) << "Destroying renderer whose root scene has become "
|
| + "unavailable: renderer="
|
| + << renderer;
|
| + DestroyRenderer(renderer);
|
| + }
|
|
|
| // Consider all dependent rendering to be invalidated.
|
| universe_.RemoveScene(scene_state->scene_token());
|
|
|