tdm_output_change_handler func,
void *user_data)
{
- tdm_private_output_change_handler *change_handler;
+ tdm_private_output_change_handler *change_handler = NULL;
OUTPUT_FUNC_ENTRY();
TDM_RETURN_VAL_IF_FAIL(func != NULL, TDM_ERROR_INVALID_PARAMETER);
_pthread_mutex_lock(&private_display->lock);
+ LIST_FOR_EACH_ENTRY(change_handler, &private_output->change_handler_list, link) {
+ if (change_handler->func == func || change_handler->user_data == user_data) {
+ TDM_ERR("can't add twice");
+ _pthread_mutex_unlock(&private_display->lock);
+ return TDM_ERROR_BAD_REQUEST;
+ }
+ }
+
change_handler = calloc(1, sizeof(tdm_private_output_change_handler));
if (!change_handler) {
/* LCOV_EXCL_START */