diff --git a/components/viz/service/frame_sinks/external_begin_frame_source_ohos.cc b/components/viz/service/frame_sinks/external_begin_frame_source_ohos.cc index 96a02753ad7a75ab667a6c33796b339ac2072563..c5a4aa2131139098d8b16a241f715176b486d32a 100644 --- a/components/viz/service/frame_sinks/external_begin_frame_source_ohos.cc +++ b/components/viz/service/frame_sinks/external_begin_frame_source_ohos.cc @@ -101,6 +101,10 @@ void ExternalBeginFrameSourceOHOS::OnVSyncImpl(int64_t timestamp, frame_sink_manager_->OnVsync(frame_sink_id_); } + if (!vsync_notification_enabled_ || user_data_ == nullptr) { + return; + } + vsync_adapter_->RequestVsync(user_data_.release(), ExternalBeginFrameSourceOHOS::OnVSync); } @@ -116,7 +120,7 @@ void ExternalBeginFrameSourceOHOS::SetEnabled(bool enabled) { TRACE_EVENT1("viz", "ExternalBeginFrameSourceOHOS::SetEnabled", "enabled", enabled); vsync_notification_enabled_ = enabled; - if (vsync_notification_enabled_) { + if (vsync_notification_enabled_ && user_data_ != nullptr) { vsync_adapter_->RequestVsync(user_data_.release(), ExternalBeginFrameSourceOHOS::OnVSync); }