diff --git a/src/sim.c b/src/sim.c index bcf5afd0..94d8840f 100644 --- a/src/sim.c +++ b/src/sim.c @@ -321,8 +321,9 @@ static char **get_service_numbers(GSList *service_numbers) return ret; } -static void service_number_free(struct service_number *num) +static void service_number_free(gpointer pointer) { + struct service_number *num = pointer; g_free(num->id); g_free(num); } @@ -615,8 +616,7 @@ static DBusMessage *sim_set_property(DBusConnection *conn, DBusMessage *msg, set_ok = set_own_numbers(sim, own_numbers, msg); error: - g_slist_foreach(own_numbers, (GFunc) g_free, 0); - g_slist_free(own_numbers); + g_slist_free_full(own_numbers, g_free); if (set_ok) return NULL; @@ -1195,8 +1195,7 @@ check: char **own_numbers; DBusConnection *conn = ofono_dbus_get_connection(); - g_slist_foreach(sim->own_numbers, (GFunc) g_free, NULL); - g_slist_free(sim->own_numbers); + g_slist_free_full(sim->own_numbers, g_free); sim->own_numbers = sim->new_numbers; own_numbers = get_own_numbers(sim->own_numbers); @@ -1208,8 +1207,7 @@ check: g_strfreev(own_numbers); } else { - g_slist_foreach(sim->new_numbers, (GFunc) g_free, NULL); - g_slist_free(sim->new_numbers); + g_slist_free_full(sim->new_numbers, g_free); } sim->new_numbers = NULL; @@ -1302,9 +1300,7 @@ static void sim_service_numbers_changed(int id, void *userdata) struct ofono_sim *sim = userdata; if (sim->service_numbers) { - g_slist_foreach(sim->service_numbers, - (GFunc)service_number_free, NULL); - g_slist_free(sim->service_numbers); + g_slist_free_full(sim->service_numbers, service_number_free); sim->service_numbers = NULL; } @@ -2025,13 +2021,11 @@ skip_efpl: } if (efli) { - g_slist_foreach(efli, (GFunc)g_free, NULL); - g_slist_free(efli); + g_slist_free_full(efli, g_free); } if (efpl) { - g_slist_foreach(efpl, (GFunc)g_free, NULL); - g_slist_free(efpl); + g_slist_free_full(efpl, g_free); } if (sim->language_prefs != NULL) @@ -2394,15 +2388,12 @@ static void sim_free_main_state(struct ofono_sim *sim) sim->mnc[0] = '\0'; if (sim->own_numbers) { - g_slist_foreach(sim->own_numbers, (GFunc)g_free, NULL); - g_slist_free(sim->own_numbers); + g_slist_free_full(sim->own_numbers, g_free); sim->own_numbers = NULL; } if (sim->service_numbers) { - g_slist_foreach(sim->service_numbers, - (GFunc)service_number_free, NULL); - g_slist_free(sim->service_numbers); + g_slist_free_full(sim->service_numbers, service_number_free); sim->service_numbers = NULL; sim->sdn_ready = FALSE; }