ecore-drm: Don't crash when trying to disable an output
authorChris Michael <cp.michael@samsung.com>
Wed, 3 Jun 2015 18:29:14 +0000 (14:29 -0400)
committerChris Michael <cp.michael@samsung.com>
Fri, 5 Jun 2015 14:00:44 +0000 (10:00 -0400)
Summary: If we call these functions with an already disabled output,
we crash. Check for an output being 'enabled' before we make these
calls.

@fix

Signed-off-by: Chris Michael <cp.michael@samsung.com>
src/lib/ecore_drm/ecore_drm_output.c

index d6573f3..e0ba526 100644 (file)
@@ -763,6 +763,7 @@ _ecore_drm_output_render_disable(Ecore_Drm_Output *output)
    EINA_SAFETY_ON_NULL_RETURN(output);
 
    output->need_repaint = EINA_FALSE;
+   if (!output->enabled) return;
    ecore_drm_output_cursor_size_set(output, 0, 0, 0);
    ecore_drm_output_dpms_set(output, DRM_MODE_DPMS_OFF);
 }
@@ -951,6 +952,7 @@ EAPI void
 ecore_drm_output_cursor_size_set(Ecore_Drm_Output *output, int handle, int w, int h)
 {
    EINA_SAFETY_ON_NULL_RETURN(output);
+   if (!output->enabled) return;
    drmModeSetCursor(output->dev->drm.fd, output->crtc_id, handle, w, h);
 }