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;
}