diff options
-rw-r--r-- | present/present.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/present/present.c b/present/present.c index 4c97ce40c..fab105d0d 100644 --- a/present/present.c +++ b/present/present.c @@ -184,8 +184,10 @@ present_vblank_notify(present_vblank_ptr vblank, CARD8 kind, CARD8 mode, uint64_ static void present_pixmap_idle(PixmapPtr pixmap, WindowPtr window, CARD32 serial, struct present_fence *present_fence) { - present_fence_set_triggered(present_fence); - present_send_idle_notify(window, serial, pixmap, present_fence); + if (present_fence) + present_fence_set_triggered(present_fence); + if (window) + present_send_idle_notify(window, serial, pixmap, present_fence); } RRCrtcPtr @@ -297,7 +299,8 @@ present_flip_idle(ScreenPtr screen) if (screen_priv->flip_pixmap) { present_pixmap_idle(screen_priv->flip_pixmap, screen_priv->flip_window, screen_priv->flip_serial, screen_priv->flip_idle_fence); - present_fence_destroy(screen_priv->flip_idle_fence); + if (screen_priv->flip_idle_fence) + present_fence_destroy(screen_priv->flip_idle_fence); dixDestroyPixmap(screen_priv->flip_pixmap, screen_priv->flip_pixmap->drawable.id); screen_priv->flip_crtc = NULL; screen_priv->flip_window = NULL; |