diff options
author | SooChan Lim <sc1.lim@samsung.com> | 2019-03-19 10:43:05 +0900 |
---|---|---|
committer | SooChan Lim <sc1.lim@samsung.com> | 2019-03-19 10:43:05 +0900 |
commit | 75a9066a60a11470e2be1a2be24c1935b8b6c949 (patch) | |
tree | cf9ebee455670c3136b4f456db7bc48d2e92760c | |
parent | 68bee81d56800176e26e28abc98d0d8b9b1a8f51 (diff) | |
download | libtdm-sprd-75a9066a60a11470e2be1a2be24c1935b8b6c949.tar.gz libtdm-sprd-75a9066a60a11470e2be1a2be24c1935b8b6c949.tar.bz2 libtdm-sprd-75a9066a60a11470e2be1a2be24c1935b8b6c949.zip |
hwc: check the parameters
Change-Id: Ie957bf506aeb3e272a616ad2705d4fed81321c44
-rw-r--r-- | src/tdm_sprd.h | 8 | ||||
-rw-r--r-- | src/tdm_sprd_hwc.c | 10 | ||||
-rw-r--r-- | src/tdm_sprd_hwc_window.c | 14 |
3 files changed, 21 insertions, 11 deletions
diff --git a/src/tdm_sprd.h b/src/tdm_sprd.h index 17e0f3c..efbbd12 100644 --- a/src/tdm_sprd.h +++ b/src/tdm_sprd.h @@ -132,6 +132,14 @@ tdm_backend_data* sprd_output_get_sprd_data(tdm_output *output); return val;\ } \ } + +#define RETURN_IF_FAIL(cond) {\ + if (!(cond)) {\ + TDM_ERR("'%s' failed", #cond);\ + return;\ + } \ +} + #define LAYER_COUNT_PER_OUTPUT 2 #define NOP diff --git a/src/tdm_sprd_hwc.c b/src/tdm_sprd_hwc.c index 76d69af..02616f5 100644 --- a/src/tdm_sprd_hwc.c +++ b/src/tdm_sprd_hwc.c @@ -329,6 +329,13 @@ _sprd_hwc_create_window(tdm_sprd_hwc_data *hwc_data, tdm_hwc_window_info *info, if (error) *error = TDM_ERROR_NONE; + if (!hwc_data) { + TDM_ERR("invalid params"); + if (error) + *error = TDM_ERROR_INVALID_PARAMETER; + return NULL; + } + hwc_window_data = calloc(1, sizeof(tdm_sprd_hwc_window_data)); if (!hwc_window_data) { TDM_ERR("alloc failed"); @@ -347,12 +354,11 @@ _sprd_hwc_create_window(tdm_sprd_hwc_data *hwc_data, tdm_hwc_window_info *info, return hwc_window_data; } - tdm_hwc_window * sprd_hwc_create_window(tdm_hwc *hwc, tdm_error *error) { - tdm_sprd_hwc_window_data *hwc_window_data = NULL; tdm_sprd_hwc_data *hwc_data = hwc; + tdm_sprd_hwc_window_data *hwc_window_data = NULL; RETURN_VAL_IF_FAIL(hwc_data, NULL); diff --git a/src/tdm_sprd_hwc_window.c b/src/tdm_sprd_hwc_window.c index 2ff0731..8bc7a94 100644 --- a/src/tdm_sprd_hwc_window.c +++ b/src/tdm_sprd_hwc_window.c @@ -9,8 +9,7 @@ sprd_hwc_window_destroy(tdm_hwc_window *hwc_window) { tdm_sprd_hwc_window_data *hwc_window_data = hwc_window; - if (!hwc_window_data) - return; + RETURN_IF_FAIL(hwc_window_data != NULL); LIST_DEL(&hwc_window_data->link); @@ -84,9 +83,10 @@ tdm_error sprd_hwc_window_set_info(tdm_hwc_window *hwc_window, tdm_hwc_window_info *info) { tdm_sprd_hwc_window_data *hwc_window_data = hwc_window; - tdm_sprd_hwc_data *hwc_data = hwc_window_data->hwc_data; + tdm_sprd_hwc_data *hwc_data; RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER); + hwc_data = hwc_window_data->hwc_data; RETURN_VAL_IF_FAIL(hwc_data != NULL, TDM_ERROR_INVALID_PARAMETER); RETURN_VAL_IF_FAIL(info != NULL, TDM_ERROR_INVALID_PARAMETER); @@ -141,9 +141,7 @@ sprd_hwc_window_set_property(tdm_hwc_window *hwc_window, unsigned int id, tdm_va tdm_error sprd_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints) { - tdm_sprd_hwc_window_data *hwc_window_data = NULL; - - hwc_window_data = (tdm_sprd_hwc_window_data *)hwc_window; + tdm_sprd_hwc_window_data *hwc_window_data = hwc_window; RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER); RETURN_VAL_IF_FAIL(constraints != NULL, TDM_ERROR_INVALID_PARAMETER); @@ -156,9 +154,7 @@ sprd_hwc_window_get_constraints(tdm_hwc_window *hwc_window, int *constraints) tdm_error sprd_hwc_window_set_name(tdm_hwc_window *hwc_window, const char *name) { - tdm_sprd_hwc_window_data *hwc_window_data = NULL; - - hwc_window_data = (tdm_sprd_hwc_window_data *)hwc_window; + tdm_sprd_hwc_window_data *hwc_window_data = hwc_window; RETURN_VAL_IF_FAIL(hwc_window_data != NULL, TDM_ERROR_INVALID_PARAMETER); |