]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Refactor isc_radix_create to return void
authorOndřej Surý <ondrej@isc.org>
Fri, 13 Oct 2023 06:03:06 +0000 (08:03 +0200)
committerOndřej Surý <ondrej@isc.org>
Fri, 13 Oct 2023 12:44:40 +0000 (14:44 +0200)
The isc_radix_create() can't fail, so change it to return void.

lib/dns/iptable.c
lib/isc/include/isc/radix.h
lib/isc/radix.c
tests/isc/radix_test.c

index f479d71d845255024d4de4b8ec8f0e849fbc9ac2..36209bf36f4f503a907f78e6d390b579d66ba24d 100644 (file)
@@ -28,7 +28,6 @@ destroy_iptable(dns_iptable_t *dtab);
  */
 isc_result_t
 dns_iptable_create(isc_mem_t *mctx, dns_iptable_t **target) {
-       isc_result_t result;
        dns_iptable_t *tab;
 
        tab = isc_mem_get(mctx, sizeof(*tab));
@@ -38,17 +37,10 @@ dns_iptable_create(isc_mem_t *mctx, dns_iptable_t **target) {
        tab->radix = NULL;
        tab->magic = DNS_IPTABLE_MAGIC;
 
-       result = isc_radix_create(mctx, &tab->radix, RADIX_MAXBITS);
-       if (result != ISC_R_SUCCESS) {
-               goto cleanup;
-       }
+       isc_radix_create(mctx, &tab->radix, RADIX_MAXBITS);
 
        *target = tab;
        return (ISC_R_SUCCESS);
-
-cleanup:
-       dns_iptable_detach(&tab);
-       return (result);
 }
 
 static bool dns_iptable_neg = false;
index 9a911180908a1591835fecf4a29245aaea13b220..3bb01fbd806103348c8e19293741623f9666f345 100644 (file)
@@ -100,8 +100,8 @@ typedef struct isc_radix_node {
                                                      * nodes */
 } isc_radix_node_t;
 
-#define RADIX_TREE_MAGIC    ISC_MAGIC('R', 'd', 'x', 'T');
-#define RADIX_TREE_VALID(a) ISC_MAGIC_VALID(a, RADIX_TREE_MAGIC);
+#define RADIX_TREE_MAGIC    ISC_MAGIC('R', 'd', 'x', 'T')
+#define RADIX_TREE_VALID(a) ISC_MAGIC_VALID(a, RADIX_TREE_MAGIC)
 
 typedef struct isc_radix_tree {
        unsigned int      magic;
@@ -157,7 +157,7 @@ isc_radix_remove(isc_radix_tree_t *radix, isc_radix_node_t *node);
  * \li 'node' to be valid.
  */
 
-isc_result_t
+void
 isc_radix_create(isc_mem_t *mctx, isc_radix_tree_t **target, int maxbits);
 /*%<
  * Create a radix tree with a maximum depth of 'maxbits';
index 54c03832f1f670f1a908b0d33c3a2f879760890a..f688a75255bd68efe29e5ca840645bf6c322abbb 100644 (file)
@@ -131,24 +131,18 @@ _comp_with_mask(void *addr, void *dest, u_int mask) {
        return (0);
 }
 
-isc_result_t
+void
 isc_radix_create(isc_mem_t *mctx, isc_radix_tree_t **target, int maxbits) {
-       isc_radix_tree_t *radix;
-
        REQUIRE(target != NULL && *target == NULL);
+       RUNTIME_CHECK(maxbits <= RADIX_MAXBITS);
 
-       radix = isc_mem_get(mctx, sizeof(isc_radix_tree_t));
-
-       radix->mctx = NULL;
+       isc_radix_tree_t *radix = isc_mem_get(mctx, sizeof(isc_radix_tree_t));
+       *radix = (isc_radix_tree_t){
+               .maxbits = maxbits,
+               .magic = RADIX_TREE_MAGIC,
+       };
        isc_mem_attach(mctx, &radix->mctx);
-       radix->maxbits = maxbits;
-       radix->head = NULL;
-       radix->num_active_node = 0;
-       radix->num_added_node = 0;
-       RUNTIME_CHECK(maxbits <= RADIX_MAXBITS); /* XXX */
-       radix->magic = RADIX_TREE_MAGIC;
        *target = radix;
-       return (ISC_R_SUCCESS);
 }
 
 /*
index fe589fe2b7fd728261dc780cd8f1d9f06968301c..def5e9cf58317e83bdcf94c6927327655f7b5297 100644 (file)
@@ -41,8 +41,7 @@ ISC_RUN_TEST_IMPL(isc_radix_remove) {
 
        UNUSED(state);
 
-       result = isc_radix_create(mctx, &radix, 32);
-       assert_int_equal(result, ISC_R_SUCCESS);
+       isc_radix_create(mctx, &radix, 32);
 
        in_addr.s_addr = inet_addr("1.1.1.1");
        isc_netaddr_fromin(&netaddr, &in_addr);
@@ -90,8 +89,7 @@ ISC_RUN_TEST_IMPL(isc_radix_search) {
 
        UNUSED(state);
 
-       result = isc_radix_create(mctx, &radix, 32);
-       assert_int_equal(result, ISC_R_SUCCESS);
+       isc_radix_create(mctx, &radix, 32);
 
        in_addr.s_addr = inet_addr("3.3.3.0");
        isc_netaddr_fromin(&netaddr, &in_addr);