Commit ab5c4c3c authored by ckitagawa's avatar ckitagawa Committed by Commit Bot

[Paint Preview] Change cleanup order and ensure objects exist

When under memory pressure, we need to make sure all objects exist and
that the callback is the last thing resolved. Otherwise `this` might be
gone.

Bug: 1148268
Change-Id: I0bc7c5ec29b4189f19b7936b20fc7cd6b8489d5a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2533900
Commit-Queue: Calder Kitagawa <ckitagawa@chromium.org>
Auto-Submit: Calder Kitagawa <ckitagawa@chromium.org>
Reviewed-by: default avatarMehran Mahmoudi <mahmoudi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#826883}
parent 55de60a9
...@@ -255,13 +255,17 @@ void PlayerCompositorDelegate::OnMemoryPressure( ...@@ -255,13 +255,17 @@ void PlayerCompositorDelegate::OnMemoryPressure(
base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) { base::MemoryPressureListener::MemoryPressureLevel memory_pressure_level) {
if (memory_pressure_level == if (memory_pressure_level ==
base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) { base::MemoryPressureListener::MEMORY_PRESSURE_LEVEL_CRITICAL) {
if (paint_preview_compositor_client_)
paint_preview_compositor_client_.reset();
if (paint_preview_compositor_service_)
paint_preview_compositor_service_.reset();
if (compositor_error_) { if (compositor_error_) {
std::move(compositor_error_) std::move(compositor_error_)
.Run(static_cast<int>( .Run(static_cast<int>(
CompositorStatus::STOPPED_DUE_TO_MEMORY_PRESSURE)); CompositorStatus::STOPPED_DUE_TO_MEMORY_PRESSURE));
} }
paint_preview_compositor_client_.reset();
paint_preview_compositor_service_.reset();
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment