static void auth_data_unref (gpointer data) { AuthData *d = data; g_return_if_fail (data != NULL); d->refs--; if (d->refs == 0) auth_data_free (data); }
static void authenticator_completed (PolkitMateAuthenticator *authenticator, gboolean gained_authorization, gpointer user_data) { AuthData *data = user_data; data->listener->authenticators = g_list_remove (data->listener->authenticators, authenticator); if (authenticator == data->listener->active_authenticator) data->listener->active_authenticator = NULL; g_object_unref (authenticator); g_simple_async_result_complete (data->simple); g_object_unref (data->simple); maybe_initiate_next_authenticator (data->listener); auth_data_free (data); }