destroy a vblank object when failed 34/85834/1
authorBoram Park <boram1288.park@samsung.com>
Mon, 29 Aug 2016 08:17:09 +0000 (17:17 +0900)
committerBoram Park <boram1288.park@samsung.com>
Mon, 29 Aug 2016 08:17:09 +0000 (17:17 +0900)
Change-Id: I699b81b18efc3d9323dcea3d605f7247f3abb742

src/tdm.c

index 550b043..e4e8eb5 100644 (file)
--- a/src/tdm.c
+++ b/src/tdm.c
@@ -1207,18 +1207,24 @@ tdm_display_enable_ttrace_vblank(tdm_display *dpy, tdm_output *output, int enabl
                TDM_RETURN_VAL_IF_FAIL(vblank != NULL, ret);
 
                ret = tdm_output_get_mode(output, &mode);
-               TDM_RETURN_VAL_IF_FAIL(mode != NULL, ret);
+               TDM_GOTO_IF_FAIL(mode != NULL, enable_fail);
 
                ret = tdm_vblank_set_fps(vblank, mode->vrefresh);
-               TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, ret);
+               TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, enable_fail);
 
                ret = tdm_vblank_set_enable_fake(vblank, 1);
-               TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, ret);
+               TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, enable_fail);
 
                ret = tdm_vblank_wait(vblank, 0, 0, 1, _tdm_display_ttrace_vblank_cb, NULL);
-               TDM_RETURN_VAL_IF_FAIL(ret == TDM_ERROR_NONE, ret);
+               TDM_GOTO_IF_FAIL(ret == TDM_ERROR_NONE, enable_fail);
        }
 
        return TDM_ERROR_NONE;
+
+enable_fail:
+    if (vblank)
+        tdm_vblank_destroy(vblank);
+    vblank = NULL;
+    return ret;
 }