Test for valid Wayland compositor before trying to shutdown.
authorChris Michael <devilhorns@comcast.net>
Sat, 4 May 2013 13:35:01 +0000 (14:35 +0100)
committerChris Michael <devilhorns@comcast.net>
Sat, 4 May 2013 13:35:01 +0000 (14:35 +0100)
Signed-off-by: Chris Michael <devilhorns@comcast.net>
src/bin/e_comp_wl.c

index ee250bc..4484c9b 100644 (file)
@@ -294,32 +294,35 @@ e_comp_wl_shutdown(void)
 {
    E_Module *mod = NULL;
 
-   /* remove the idler */
-   if (_e_wl_comp->idler) ecore_idler_del(_e_wl_comp->idler);
+   if (_e_wl_comp)
+     {
+        /* remove the idler */
+        if (_e_wl_comp->idler) ecore_idler_del(_e_wl_comp->idler);
 
-   /* remove the fd handler */
-   if (_e_wl_comp->fd_handler)
-     ecore_main_fd_handler_del(_e_wl_comp->fd_handler);
+        /* remove the fd handler */
+        if (_e_wl_comp->fd_handler)
+          ecore_main_fd_handler_del(_e_wl_comp->fd_handler);
 
-   /* shutdown input */
-   _e_comp_wl_input_shutdown();
+        /* shutdown input */
+        _e_comp_wl_input_shutdown();
 
 #ifdef HAVE_WAYLAND_EGL
-   /* unbind wayland display */
-   if (_e_wl_comp->egl.bound)
-     _e_wl_comp->egl.unbind_display(_e_wl_comp->egl.display, _e_wl_comp->wl.display);
+        /* unbind wayland display */
+        if (_e_wl_comp->egl.bound)
+          _e_wl_comp->egl.unbind_display(_e_wl_comp->egl.display, _e_wl_comp->wl.display);
 
-   /* terminate the egl display */
-   if (_e_wl_comp->egl.display) eglTerminate(_e_wl_comp->egl.display);
+        /* terminate the egl display */
+        if (_e_wl_comp->egl.display) eglTerminate(_e_wl_comp->egl.display);
 
-   eglReleaseThread();
+        eglReleaseThread();
 #endif
 
-   /* if we have a display, destroy it */
-   if (_e_wl_comp->wl.display) wl_display_destroy(_e_wl_comp->wl.display);
+        /* if we have a display, destroy it */
+        if (_e_wl_comp->wl.display) wl_display_destroy(_e_wl_comp->wl.display);
 
-   /* free the compositor */
-   E_FREE(_e_wl_comp);
+        /* free the compositor */
+        E_FREE(_e_wl_comp);
+     }
 
    /* disable the loaded shell module */
    /* TODO: we should have a config variable somewhere to store which