diff options
author | Hannu Mallat <hannu.mallat@jollamobile.com> | 2014-05-22 08:11:19 +0300 |
---|---|---|
committer | Patrik Flykt <patrik.flykt@linux.intel.com> | 2014-05-23 15:57:13 +0300 |
commit | ef79829f319185d05bcabac9d32b058ee8b01e28 (patch) | |
tree | 57a12b73df98c8b53a5b7d940e4f16b36d9c27f1 | |
parent | ab87d87dad1f975d61eec281a68c406edb03aeac (diff) | |
download | connman-ef79829f319185d05bcabac9d32b058ee8b01e28.tar.gz |
service: Helper function for sorting services
Create a helper function to sort service list in order to shorten the
code slightly and to ensure NULL pointer check is always done before
using the list pointer.
-rw-r--r-- | src/service.c | 41 |
1 files changed, 14 insertions, 27 deletions
diff --git a/src/service.c b/src/service.c index 6a70777a..d586147a 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(); } } |