diff options
author | John Ernberg <john.ernberg@actia.se> | 2016-04-22 13:10:07 +0000 |
---|---|---|
committer | Denis Kenzior <denkenz@gmail.com> | 2016-04-22 15:39:22 -0500 |
commit | 7ea76fb667618153d1f685607702dd0fc2c0121e (patch) | |
tree | 7fcf9d557ae26dfdc6095a15a3e6b8161f96890d | |
parent | 4ae734ef6f1eb1a80e97f193450f8d44749ea874 (diff) | |
download | ofono-7ea76fb667618153d1f685607702dd0fc2c0121e.tar.gz |
phonebook: Remove explicit casts
Casting between incompatible function pointer types is undefined. So
remove such casts when possible.
-rw-r--r-- | src/phonebook.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/phonebook.c b/src/phonebook.c index 531b5a65..07bfcae3 100644 --- a/src/phonebook.c +++ b/src/phonebook.c @@ -233,23 +233,28 @@ static void vcard_printf_end(GString *vcards) vcard_printf(vcards, ""); } -static void print_number(struct phonebook_number *pn, GString *vcards) +static void print_number(gpointer pointer, gpointer user_data) { + struct phonebook_number *pn = pointer; + GString *vcards = user_data; vcard_printf_number(vcards, pn->number, pn->type, pn->category); } -static void destroy_number(struct phonebook_number *pn) +static void destroy_number(gpointer pointer) { + struct phonebook_number *pn = pointer; g_free(pn->number); g_free(pn); } -static void print_merged_entry(struct phonebook_person *person, GString *vcards) +static void print_merged_entry(gpointer pointer, gpointer user_data) { + struct phonebook_person *person = pointer; + GString *vcards = user_data; vcard_printf_begin(vcards); vcard_printf_text(vcards, person->text); - g_slist_foreach(person->number_list, (GFunc) print_number, vcards); + g_slist_foreach(person->number_list, print_number, vcards); vcard_printf_group(vcards, person->group); vcard_printf_email(vcards, person->email); @@ -257,15 +262,15 @@ static void print_merged_entry(struct phonebook_person *person, GString *vcards) vcard_printf_end(vcards); } -static void destroy_merged_entry(struct phonebook_person *person) +static void destroy_merged_entry(gpointer pointer) { + struct phonebook_person *person = pointer; g_free(person->text); g_free(person->group); g_free(person->email); g_free(person->sip_uri); - g_slist_foreach(person->number_list, (GFunc) destroy_number, NULL); - g_slist_free(person->number_list); + g_slist_free_full(person->number_list, destroy_number); g_free(person); } @@ -419,10 +424,9 @@ static void export_phonebook_cb(const struct ofono_error *error, void *data) /* convert the collected entries that are already merged to vcard */ phonebook->merge_list = g_slist_reverse(phonebook->merge_list); - g_slist_foreach(phonebook->merge_list, (GFunc) print_merged_entry, + g_slist_foreach(phonebook->merge_list, print_merged_entry, phonebook->vcards); - g_slist_foreach(phonebook->merge_list, (GFunc) destroy_merged_entry, - NULL); + g_slist_free_full(phonebook->merge_list, destroy_merged_entry); g_slist_free(phonebook->merge_list); phonebook->merge_list = NULL; |