]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Fix aggregator_bucket_intersect(), add comments and fix naming
authorIgor Putovny <igor.putovny@nic.cz>
Tue, 19 Sep 2023 10:06:52 +0000 (12:06 +0200)
committerIgor Putovny <igor.putovny@nic.cz>
Tue, 19 Sep 2023 10:06:52 +0000 (12:06 +0200)
proto/aggregator/aggregator.c

index ea081db6d96fcc8f805c6c6313fd523dd6087d40..8272ea0eea8005c5f02a7eb0fa0e851525d1c15f 100644 (file)
@@ -222,8 +222,11 @@ aggregator_bucket_compare(const void *a, const void *b)
   return 0;
 }
 
+/*
+ * Compute intersection of two sets of potential buckets in @left and @right and put result in @node
+ */
 static void
-aggregator_bucket_intersection(struct trie_node *node, const struct trie_node *left, const struct trie_node *right)
+aggregator_bucket_intersect(struct trie_node *node, const struct trie_node *left, const struct trie_node *right)
 {
   assert(node != NULL);
   assert(left != NULL);
@@ -246,14 +249,17 @@ aggregator_bucket_intersection(struct trie_node *node, const struct trie_node *l
       j++;
     }
     else if (res == -1)
-      node->potential_buckets[node->potential_buckets_count++] = left->potential_buckets[i++];
+      i++;
     else if (res == 1)
-      node->potential_buckets[node->potential_buckets_count++] = right->potential_buckets[j++];
+      j++;
   }
 }
 
+/*
+ * Compute union of two sets of potential buckets in @left and @right and put result in @node
+ */
 static void
-aggregator_bucket_union(struct trie_node *node, const struct trie_node *left, const struct trie_node *right)
+aggregator_bucket_unionize(struct trie_node *node, const struct trie_node *left, const struct trie_node *right)
 {
   assert(node != NULL);
   assert(left != NULL);
@@ -353,9 +359,9 @@ second_pass(struct trie_node *node)
   qsort(right->potential_buckets, right->potential_buckets_count, sizeof(struct aggregator_bucket *), aggregator_bucket_compare);
 
   if (bucket_sets_are_disjoint(left, right))
-    aggregator_bucket_union(node, left, right);
+    aggregator_bucket_unionize(node, left, right);
   else
-    aggregator_bucket_intersection(node, left, right);
+    aggregator_bucket_intersect(node, left, right);
 
   log("node: %p, potential buckets count: %d", node, node->potential_buckets_count);