Created a helper function to sort service list, to shorten the code
slightly and to ensure null pointer check is always done before using
the list pointer.
---
src/service.c | 41 ++++++++++++++---------------------------
1 file changed, 14 insertions(+), 27 deletions(-)
diff --git a/src/service.c b/src/service.c
index 6a70777..d586147 100644
--- a/src/service.c
+++ b/src/service.c
@@ -4729,6 +4729,14 @@ static gint service_compare(gconstpointer a,
gconstpointer b)
return g_strcmp0(service_a->name, service_b->name);
}
+static void service_list_sort(void)
+{
+ if (service_list && service_list->next) {
+ service_list = g_list_sort(service_list, service_compare);
+ service_schedule_changed();
+ }
+}
+
/**
* connman_service_get_type:
* @service: service structure
@@ -4896,11 +4904,7 @@ int __connman_service_set_favorite_delayed(struct
connman_service *service,
if (!delay_ordering) {
- if (service_list->next) {
- service_list = g_list_sort(service_list,
- service_compare);
- service_schedule_changed();
- }
+ service_list_sort();
__connman_connection_update_gateway();
}
@@ -5449,10 +5453,7 @@ static int service_indicate_state(struct connman_service
*service)
} else
set_error(service, CONNMAN_SERVICE_ERROR_UNKNOWN);
- if (service_list->next) {
- service_list = g_list_sort(service_list, service_compare);
- service_schedule_changed();
- }
+ service_list_sort();
__connman_connection_update_gateway();
@@ -6159,11 +6160,7 @@ int __connman_service_provision_changed(const char
*ident)
if (services_dirty) {
services_dirty = false;
- if (service_list->next) {
- service_list = g_list_sort(service_list,
- service_compare);
- service_schedule_changed();
- }
+ service_list_sort();
__connman_connection_update_gateway();
}
@@ -6237,10 +6234,7 @@ static int service_register(struct connman_service
*service)
service_methods, service_signals,
NULL, service, NULL);
- if (service_list->next) {
- service_list = g_list_sort(service_list, service_compare);
- service_schedule_changed();
- }
+ service_list_sort();
__connman_connection_update_gateway();
@@ -6669,10 +6663,7 @@ static void update_from_network(struct connman_service
*service,
if (!service->network)
service->network = connman_network_ref(network);
- if (service_list->next) {
- service_list = g_list_sort(service_list, service_compare);
- service_schedule_changed();
- }
+ service_list_sort();
}
/**
@@ -6834,11 +6825,7 @@ roaming:
sorting:
if (need_sort) {
- if (service_list->next) {
- service_list = g_list_sort(service_list,
- service_compare);
- service_schedule_changed();
- }
+ service_list_sort();
}
}
--
1.8.5.3
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman