library: Simplify comparators 96/277896/5
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 14 Jul 2022 21:48:14 +0000 (23:48 +0200)
committerKarol Lewandowski <k.lewandowsk@samsung.com>
Thu, 21 Jul 2022 09:21:47 +0000 (11:21 +0200)
Change-Id: Ie4af052e02f5190dae542bbcc34daa495101430b

libsessiond/src/lib.c

index f034d69..6551bec 100644 (file)
@@ -269,62 +269,36 @@ static signal_client_data_t *make_new_signal_callback_client_data(subsession_eve
        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)", &params_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)",
                &params_session_uid,
@@ -333,54 +307,24 @@ static gint g_compare_session_uid_params_switch_wait (  gconstpointer client_dat
                &params_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)", &params_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) {
@@ -458,7 +402,7 @@ static void signal_addremove_common_handler(GDBusConnection *connection,
        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 };
@@ -507,7 +451,7 @@ static void signal_switch_user_common_handler(GDBusConnection *connection,
        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 };
@@ -804,10 +748,8 @@ static registered_signal_t subsession_register_event_in_list(client_callbacks_da
                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;
@@ -934,7 +876,7 @@ static int unregister_event_callback(client_callbacks_data_t *callbacks_data, in
 
        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)