gfx::GpuFenceHandle release_fence) {
DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
DCHECK(client_);
+ if (!client_) {
+ LOG(ERROR) << "client is empty, wrong state.";
+ return;
+ }
+
last_swapped_mailbox_ = params.primary_plane_mailbox;
if (frame_buffer_damage_tracker_ &&
client_->DidSwapWithSize(pixel_size);
#if BUILDFLAG(IS_EFL)
// we need notify swap for both onscreen and offscreen.
- client_->NotifySwap(impl_on_gpu_->GetTextureID(), impl_on_gpu_->NeedSync());
+ // impl_on_gpu_ maybe reset in SkiaOutputSurfaceImpl::dtor.
+ if (impl_on_gpu_)
+ client_->NotifySwap(impl_on_gpu_->GetTextureID(), impl_on_gpu_->NeedSync());
+ else
+ LOG(ERROR) << "impl_on_gpu_ is already destroyed.";
#endif
}