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 connman@connman.net https://lists.connman.net/mailman/listinfo/connman