Index: ui/ozone/platform/drm/gpu/crtc_controller.cc |
diff --git a/ui/ozone/platform/drm/gpu/crtc_controller.cc b/ui/ozone/platform/drm/gpu/crtc_controller.cc |
index adc3c84c8b078523e86904ded17e666b2f74a924..1b92b0e19d1edc05167af235035223ac55521140 100644 |
--- a/ui/ozone/platform/drm/gpu/crtc_controller.cc |
+++ b/ui/ozone/platform/drm/gpu/crtc_controller.cc |
@@ -32,7 +32,8 @@ CrtcController::~CrtcController() { |
SetCursor(nullptr); |
drm_->DisableCrtc(crtc_); |
- SignalPageFlipRequest(); |
+ if (page_flip_request_) |
+ SignalPageFlipRequest(); |
} |
} |
@@ -168,15 +169,9 @@ bool CrtcController::ResetCursor() { |
} |
void CrtcController::SignalPageFlipRequest() { |
- if (page_flip_request_.get()) { |
- // If another frame is queued up and available immediately, calling Signal() |
- // may result in a call to SchedulePageFlip(), which will override |
- // page_flip_request_ and possibly release the ref. Stash previous request |
- // locally to avoid deleting the object we are making a call on. |
- scoped_refptr<PageFlipRequest> last_request; |
- last_request.swap(page_flip_request_); |
- last_request->Signal(gfx::SwapResult::SWAP_ACK); |
- } |
+ scoped_refptr<PageFlipRequest> request; |
+ request.swap(page_flip_request_); |
+ request->Signal(gfx::SwapResult::SWAP_ACK); |
} |
} // namespace ui |