return signal_data;
}
-static gint g_compare_session_uid_params(gconstpointer client_data, gconstpointer parameters) {
-
- maybe_not_comparable_if(
- client_data_are_null(client_data,
- parameters_are_null(parameters))
- )
-
- signal_client_data_t *signal_client_data = (signal_client_data_t*)client_data;
-
- maybe_not_comparable_if(
- client_data_are_null(client_data,
- parameters_are_null(parameters))
- )
+static gint g_compare_session_uid(gconstpointer lval, gconstpointer rval)
+{
+ assert(lval);
+ assert(rval);
+ signal_client_data_t *signal_client_data = (signal_client_data_t*)lval;
int client_session_uid = 0;
maybe_g_variant_get_or_ret_diff_(signal_client_data->params, "(i)", &client_session_uid);
- maybe_not_comparable_if(
- session_uid_is_not_valid(client_session_uid)
- )
-
- GVariant *params = (GVariant *)parameters;
+ GVariant *params = (GVariant *)rval;
int params_session_uid = 0;
-
maybe_g_variant_get_or_ret_diff_(params, "(i)", ¶ms_session_uid);
- maybe_not_comparable_if(
- int_not_valid(params_session_uid)
- )
- if( client_session_uid == params_session_uid) {
- return COMPARATOR_RESULT_SAME_;
- }
- return COMPARATOR_RESULT_DIFFERENT_;
+ return client_session_uid == params_session_uid ? COMPARATOR_RESULT_SAME_ : COMPARATOR_RESULT_DIFFERENT_;
}
-static gint g_compare_session_uid_params_switch_wait ( gconstpointer client_data, gconstpointer parameters) {
-
- maybe_not_comparable_if(
- client_data_are_null(client_data,
- parameters_are_null(parameters))
- )
-
- signal_client_data_t *signal_client_data = (signal_client_data_t*)client_data;
+static gint g_compare_switch_signal(gconstpointer lval, gconstpointer rval)
+{
+ assert(lval);
+ assert(rval);
+ signal_client_data_t *signal_client_data = (signal_client_data_t*)lval;
int client_session_uid = 0;
maybe_g_variant_get_or_ret_diff_(signal_client_data->params, "(i)", &client_session_uid);
- maybe_not_comparable_if(
- int_not_valid(client_session_uid)
- )
-
- GVariant *params = (GVariant *)parameters;
+ GVariant *params = (GVariant *)rval;
int params_session_uid = 0;
uint64_t params_switch_id = 0;
- char* params_prev_user = NULL;
- char* params_next_user = NULL;
+ g_autofree char* params_prev_user = NULL;
+ g_autofree char* params_next_user = NULL;
maybe_g_variant_get_or_ret_diff_(params, "(ixss)",
¶ms_session_uid,
¶ms_next_user
);
- maybe_not_comparable_if(
- int_not_valid(params_session_uid,
- switch_id_is_not_valid(params_switch_id))
- )
-
- g_free(params_prev_user);
- g_free(params_next_user);
-
- if( client_session_uid == params_session_uid) {
- return COMPARATOR_RESULT_SAME_;
- }
- return COMPARATOR_RESULT_DIFFERENT_;
+ return client_session_uid == params_session_uid ? COMPARATOR_RESULT_SAME_ : COMPARATOR_RESULT_DIFFERENT_;
}
-static gint g_compare_session_uid_params_wait (gconstpointer client_data, gconstpointer parameters) {
-
-
- maybe_not_comparable_if(
- client_data_are_null(client_data,
- parameters_are_null(parameters))
- )
-
- signal_client_data_t *signal_client_data = (signal_client_data_t*)client_data;
+static gint g_compare_addremove_signal(gconstpointer lval, gconstpointer rval)
+{
+ assert(lval);
+ assert(rval);
+ signal_client_data_t *signal_client_data = (signal_client_data_t*)lval;
int client_session_uid = 0;
maybe_g_variant_get_or_ret_diff_(signal_client_data->params, "(i)", &client_session_uid);
- maybe_not_comparable_if(
- session_uid_is_not_valid(client_session_uid)
- )
-
- GVariant *params = (GVariant *)parameters;
+ GVariant *params = (GVariant *)rval;
int params_session_uid = 0;
- char *user_id = NULL;
-
-
+ g_autofree char *user_id = NULL;
maybe_g_variant_get_or_ret_diff_(params, "(is)", ¶ms_session_uid, &user_id);
- maybe_not_comparable_if(
- session_uid_is_not_valid(params_session_uid)
- )
-
- g_free(user_id);
-
- if( client_session_uid == params_session_uid) {
- return COMPARATOR_RESULT_SAME_;
- }
- return COMPARATOR_RESULT_DIFFERENT_;
+ return client_session_uid == params_session_uid ? COMPARATOR_RESULT_SAME_ : COMPARATOR_RESULT_DIFFERENT_;
}
static signal_client_data_t *take_from_callbacks_data_and_remove_from_list( client_callbacks_data_t *client_callbacks_data, gconstpointer parameters, GCompareFunc compare_user_params) {
assert(event == SUBSESSION_ADD_USER_WAIT || event == SUBSESSION_REMOVE_USER_WAIT);
signal_client_data_t *signal_data = NULL;
- if (!signal_handler_internal(signal_name, parameters, client_data, g_compare_session_uid_params_wait, &signal_data))
+ if (!signal_handler_internal(signal_name, parameters, client_data, g_compare_addremove_signal, &signal_data))
return;
subsession_event_info event_info = { .event = event };
subsession_event_type_e event)
{
signal_client_data_t *signal_data = NULL;
- if (!signal_handler_internal(signal_name, parameters, client_data, g_compare_session_uid_params_switch_wait, &signal_data))
+ if (!signal_handler_internal(signal_name, parameters, client_data, g_compare_switch_signal, &signal_data))
return;
subsession_event_info event_info = { .event = event };
return registered_signal;
}
-
- GList *found_data = g_list_find_custom( callbacks_data->list , (gconstpointer) params, g_compare_session_uid_params );
-
- if(found_data != NULL) {
+ GList *found_data = g_list_find_custom(callbacks_data->list, (gconstpointer)params, g_compare_session_uid);
+ if (found_data != NULL) {
registered_signal.error = SUBSESSION_ERROR_ALREADY_EXISTS;
g_mutex_unlock(&callbacks_data->mutex);
return registered_signal;
g_autoptr(GVariant) gv_session_uid = g_variant_new("(i)", session_uid);
- signal_client_data_t *signal_data = take_from_callbacks_data_and_remove_from_list(callbacks_data, gv_session_uid, g_compare_session_uid_params);
+ signal_client_data_t *signal_data = take_from_callbacks_data_and_remove_from_list(callbacks_data, gv_session_uid, g_compare_session_uid);
if(signal_data == NULL) {
return_with_log_error_result_(SUBSESSION_ERROR_NOT_AVAILABLE)