egl-headless: cursor_dmabuf: handle NULL cursor
authorGerd Hoffmann <kraxel@redhat.com>
Tue, 20 Feb 2018 11:04:32 +0000 (12:04 +0100)
committerGerd Hoffmann <kraxel@redhat.com>
Thu, 22 Feb 2018 09:35:05 +0000 (10:35 +0100)
The cursor dmabuf can be NULL, in case no cursor defined by the guest.
Happens for example when linux guests show the framebuffer console.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Message-id: 20180220110433.20353-3-kraxel@redhat.com

ui/egl-headless.c

index 00ff2c036aadd6036543f45da69304893b9a65f0..b33e0b21fd8007ed02bbfc9be4eb6be75b8d6a2b 100644 (file)
@@ -89,13 +89,16 @@ static void egl_cursor_dmabuf(DisplayChangeListener *dcl,
 {
     egl_dpy *edpy = container_of(dcl, egl_dpy, dcl);
 
-    egl_dmabuf_import_texture(dmabuf);
-    if (!dmabuf->texture) {
-        return;
+    if (dmabuf) {
+        egl_dmabuf_import_texture(dmabuf);
+        if (!dmabuf->texture) {
+            return;
+        }
+        egl_fb_setup_for_tex(&edpy->cursor_fb, dmabuf->width, dmabuf->height,
+                             dmabuf->texture, false);
+    } else {
+        egl_fb_destroy(&edpy->cursor_fb);
     }
-
-    egl_fb_setup_for_tex(&edpy->cursor_fb, dmabuf->width, dmabuf->height,
-                         dmabuf->texture, false);
 }
 
 static void egl_cursor_position(DisplayChangeListener *dcl,