]> git.ipfire.org Git - people/ms/libloc.git/commitdiff
Actually clear all lists
authorMichael Tremer <michael.tremer@ipfire.org>
Tue, 17 Nov 2020 18:14:15 +0000 (18:14 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Tue, 17 Nov 2020 18:14:15 +0000 (18:14 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/as-list.c
src/country-list.c
src/network-list.c

index 17de23eaa7ca0f063883d8173d15ea03aabd48d6..76620c76b04359e06c2491a1b2310c9992a7d6ad 100644 (file)
@@ -96,8 +96,16 @@ LOC_EXPORT int loc_as_list_empty(struct loc_as_list* list) {
 }
 
 LOC_EXPORT void loc_as_list_clear(struct loc_as_list* list) {
+       if (!list->elements)
+               return;
+
        for (unsigned int i = 0; i < list->size; i++)
                loc_as_unref(list->elements[i]);
+
+       free(list->elements);
+       list->elements_size = 0;
+
+       list->size = 0;
 }
 
 LOC_EXPORT struct loc_as* loc_as_list_get(struct loc_as_list* list, size_t index) {
index 1ce2d06b6ba16d92f48c2f1eb46c3da1841afcb3..1c49c47091377fd08e92e90171919717afd8a5f0 100644 (file)
@@ -96,8 +96,16 @@ LOC_EXPORT int loc_country_list_empty(struct loc_country_list* list) {
 }
 
 LOC_EXPORT void loc_country_list_clear(struct loc_country_list* list) {
+       if (!list->elements)
+               return;
+
        for (unsigned int i = 0; i < list->size; i++)
                loc_country_unref(list->elements[i]);
+
+       free(list->elements);
+       list->elements_size = 0;
+
+       list->size = 0;
 }
 
 LOC_EXPORT struct loc_country* loc_country_list_get(struct loc_country_list* list, size_t index) {
index 4912c02f11851573ad765ce5cf62aa0279ec5163..9cb4547cf497256c56e82a0ce77e81cb18687368 100644 (file)
@@ -96,9 +96,15 @@ LOC_EXPORT int loc_network_list_empty(struct loc_network_list* list) {
 }
 
 LOC_EXPORT void loc_network_list_clear(struct loc_network_list* list) {
+       if (!list->elements)
+               return;
+
        for (unsigned int i = 0; i < list->size; i++)
                loc_network_unref(list->elements[i]);
 
+       free(list->elements);
+       list->elements_size = 0;
+
        list->size = 0;
 }