hwc_funcs = g_hal_tdm_backend_data->hwc_funcs; \
if (!hwc_funcs->__func__) return HAL_TDM_ERROR_NOT_IMPLEMENTED;
+#define HWC_FUNC_ENTRY_FD_CLOSE(__func__, fd) \
+ hal_tdm_hwc_funcs *hwc_funcs; \
+ if (!hwc) { if (fd >= 0) close(fd); return HAL_TDM_ERROR_INVALID_PARAMETER; } \
+ if (!g_hal_tdm_backend_data) { if (fd >= 0) close(fd); return HAL_TDM_ERROR_NO_MODULE; } \
+ if (!g_hal_tdm_backend_data->hwc_funcs) { if (fd >= 0) close(fd); return HAL_TDM_ERROR_NOT_IMPLEMENTED; } \
+ hwc_funcs = g_hal_tdm_backend_data->hwc_funcs; \
+ if (!hwc_funcs->__func__) { if (fd >= 0) close(fd); return HAL_TDM_ERROR_NOT_IMPLEMENTED; }
+
#define HWC_FUNC_ENTRY_NULL(__func__) \
hal_tdm_hwc_funcs *hwc_funcs; \
if (!hwc) { if (*error) *error = HAL_TDM_ERROR_NOT_IMPLEMENTED; return NULL; } \
hwc_window_funcs = g_hal_tdm_backend_data->hwc_window_funcs; \
if (!hwc_window_funcs->__func__) return HAL_TDM_ERROR_NOT_IMPLEMENTED;
+#define HWC_WINDOW_FUNC_ENTRY_FD_CLOSE(__func__, fd) \
+ hal_tdm_hwc_window_funcs *hwc_window_funcs; \
+ if (!hwc_window) { if (fd >= 0) close(fd); return HAL_TDM_ERROR_INVALID_PARAMETER; } \
+ if (!g_hal_tdm_backend_data) { if (fd >= 0) close(fd); return HAL_TDM_ERROR_NO_MODULE; } \
+ if (!g_hal_tdm_backend_data->hwc_window_funcs) { if (fd >= 0) close(fd); return HAL_TDM_ERROR_NOT_IMPLEMENTED; } \
+ hwc_window_funcs = g_hal_tdm_backend_data->hwc_window_funcs; \
+ if (!hwc_window_funcs->__func__) { if (fd >= 0) close(fd); return HAL_TDM_ERROR_NOT_IMPLEMENTED; }
+
#define HWC_WINDOW_FUNC_ENTRY_NULL(__func__) \
hal_tdm_hwc_window_funcs *hwc_window_funcs; \
if (!hwc_window) { if (*error) *error = HAL_TDM_ERROR_NOT_IMPLEMENTED; return NULL; } \
EXTERN hal_tdm_error
hal_tdm_hwc_set_client_target_acquire_fence(hal_tdm_hwc *hwc, int acquire_fence)
{
- HWC_FUNC_ENTRY(hwc_set_client_target_acquire_fence);
+ HWC_FUNC_ENTRY_FD_CLOSE(hwc_set_client_target_acquire_fence, acquire_fence);
return hwc_funcs->hwc_set_client_target_acquire_fence(hwc, acquire_fence);
}
EXTERN hal_tdm_error
hal_tdm_hwc_window_set_acquire_fence(hal_tdm_hwc_window *hwc_window, int acquire_fence)
{
- HWC_WINDOW_FUNC_ENTRY(hwc_window_set_acquire_fence);
+ HWC_WINDOW_FUNC_ENTRY_FD_CLOSE(hwc_window_set_acquire_fence, acquire_fence);
return hwc_window_funcs->hwc_window_set_acquire_fence(hwc_window, acquire_fence);
}