ecore-drm: Destroy any existing eeze watch when we free the device
authorChris Michael <cpmichael@osg.samsung.com>
Thu, 21 Jan 2016 16:32:53 +0000 (11:32 -0500)
committerChris Michael <cpmichael@osg.samsung.com>
Thu, 21 Jan 2016 16:32:53 +0000 (11:32 -0500)
If a user frees a device without closing it we could end up with a
dangling eeze watch. This small patch just makes sure to delete the
watch if it exists

@fix

Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
src/lib/ecore_drm/ecore_drm_device.c

index a406d5e..cca3332 100644 (file)
@@ -277,6 +277,8 @@ ecore_drm_device_free(Ecore_Drm_Device *dev)
         dev->dumb[i] = NULL;
      }
 
+   if (dev->watch) eeze_udev_watch_del(dev->watch);
+
    /* free crtcs */
    if (dev->crtcs) free(dev->crtcs);
 
@@ -394,9 +396,11 @@ ecore_drm_device_close(Ecore_Drm_Device *dev)
 
    /* delete udev watch */
    if (dev->watch) eeze_udev_watch_del(dev->watch);
+   dev->watch = NULL;
 
    /* close xkb context */
    if (dev->xkb_ctx) xkb_context_unref(dev->xkb_ctx);
+   dev->xkb_ctx = NULL;
 
    _ecore_drm_launcher_device_close(dev->drm.name, dev->drm.fd);