From 39cbbc63aee362d82f69a9b4722b59153ce799a0 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 24 Nov 2020 15:04:03 +0000 Subject: [PATCH] network-list: Drop sorting functions Since the list is always sorted, there is no point in sorting it again... Signed-off-by: Michael Tremer --- src/database.c | 6 +---- src/libloc.sym | 3 --- src/loc/network-list.h | 3 --- src/network-list.c | 52 ------------------------------------------ src/test-network.c | 9 -------- 5 files changed, 1 insertion(+), 72 deletions(-) diff --git a/src/database.c b/src/database.c index ba4f98a..5546091 100644 --- a/src/database.c +++ b/src/database.c @@ -1372,17 +1372,13 @@ static int __loc_database_enumerator_next_network_flattened( // We no longer need the excluded list loc_network_list_unref(excluded); - // Sort all subnets - loc_network_list_sort(subnets); - // Replace network with the first one loc_network_unref(*network); *network = loc_network_list_pop_first(subnets); // Push the rest onto the stack - loc_network_list_merge_reverse(enumerator->stack, subnets); - + loc_network_list_merge(enumerator->stack, subnets); loc_network_list_unref(subnets); return 0; diff --git a/src/libloc.sym b/src/libloc.sym index 28cc8e8..4b0ce45 100644 --- a/src/libloc.sym +++ b/src/libloc.sym @@ -141,15 +141,12 @@ global: loc_network_list_empty; loc_network_list_get; loc_network_list_merge; - loc_network_list_merge_reverse; loc_network_list_new; loc_network_list_pop; loc_network_list_pop_first; loc_network_list_push; loc_network_list_ref; - loc_network_list_reverse; loc_network_list_size; - loc_network_list_sort; loc_network_list_unref; # Writer diff --git a/src/loc/network-list.h b/src/loc/network-list.h index 89776a6..21c7402 100644 --- a/src/loc/network-list.h +++ b/src/loc/network-list.h @@ -30,9 +30,6 @@ int loc_network_list_push(struct loc_network_list* list, struct loc_network* net struct loc_network* loc_network_list_pop(struct loc_network_list* list); struct loc_network* loc_network_list_pop_first(struct loc_network_list* list); int loc_network_list_contains(struct loc_network_list* list, struct loc_network* network); -void loc_network_list_sort(struct loc_network_list* list); -void loc_network_list_reverse(struct loc_network_list* list); int loc_network_list_merge(struct loc_network_list* self, struct loc_network_list* other); -int loc_network_list_merge_reverse(struct loc_network_list* self, struct loc_network_list* other); #endif diff --git a/src/network-list.c b/src/network-list.c index 6e9cd37..7e8b5f3 100644 --- a/src/network-list.c +++ b/src/network-list.c @@ -257,45 +257,6 @@ LOC_EXPORT int loc_network_list_contains(struct loc_network_list* list, struct l return found; } -static void loc_network_list_swap(struct loc_network_list* list, unsigned int i1, unsigned int i2) { - // Do nothing for invalid indices - if (i1 >= list->size || i2 >= list->size) - return; - - struct loc_network* network1 = list->elements[i1]; - struct loc_network* network2 = list->elements[i2]; - - list->elements[i1] = network2; - list->elements[i2] = network1; -} - -LOC_EXPORT void loc_network_list_reverse(struct loc_network_list* list) { - unsigned int i = 0; - unsigned int j = list->size - 1; - - while (i < j) { - loc_network_list_swap(list, i++, j--); - } -} - -LOC_EXPORT void loc_network_list_sort(struct loc_network_list* list) { - unsigned int n = list->size; - int swapped; - - do { - swapped = 0; - - for (unsigned int i = 1; i < n; i++) { - if (loc_network_gt(list->elements[i-1], list->elements[i]) > 0) { - loc_network_list_swap(list, i-1, i); - swapped = 1; - } - } - - n--; - } while (swapped); -} - LOC_EXPORT int loc_network_list_merge( struct loc_network_list* self, struct loc_network_list* other) { int r; @@ -308,16 +269,3 @@ LOC_EXPORT int loc_network_list_merge( return 0; } - -LOC_EXPORT int loc_network_list_merge_reverse( - struct loc_network_list* self, struct loc_network_list* other) { - int r; - - for (int i = other->size - 1; i >= 0; i--) { - r = loc_network_list_push(self, other->elements[i]); - if (r) - return r; - } - - return 0; -} diff --git a/src/test-network.c b/src/test-network.c index 79c2967..8a6763c 100644 --- a/src/test-network.c +++ b/src/test-network.c @@ -188,15 +188,6 @@ int main(int argc, char** argv) { } loc_network_list_dump(excluded); - - // Reverse it - loc_network_list_reverse(excluded); - loc_network_list_dump(excluded); - - // Sort them and dump them again - loc_network_list_sort(excluded); - loc_network_list_dump(excluded); - loc_network_list_unref(excluded); // Create a database -- 2.39.2