]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Pass 'mctx' instead of 'db' to dns_slabheader_new()
authorOndřej Surý <ondrej@isc.org>
Tue, 5 Aug 2025 16:05:52 +0000 (18:05 +0200)
committerEvan Hunt <each@isc.org>
Mon, 18 Aug 2025 04:56:25 +0000 (21:56 -0700)
The slabheader doesn't directly attach or link to 'db' anymore.  Pass
only the memory context needed to create the slab header to make the
lack of relation ship more prominent.

Also don't call dns_slabheader_reset() from dns_slabheader_new(), it has
no added value.

lib/dns/include/dns/rdataslab.h
lib/dns/qpcache.c
lib/dns/qpzone.c
lib/dns/rdataslab.c

index c5e61c3b925d329bafa2ba4462fc5c67104423ac..b93619f600bb0f3a36fc04b653d3024ab431b238 100644 (file)
@@ -295,14 +295,14 @@ void
 dns_slabheader_reset(dns_slabheader_t *h, dns_dbnode_t *node);
 /*%<
  * Reset an rdataslab header 'h' so it can be used to store data in
- * database 'db' and node 'node'.
+ * database node 'node'.
  */
 
 dns_slabheader_t *
-dns_slabheader_new(dns_db_t *db, dns_dbnode_t *node);
+dns_slabheader_new(isc_mem_t *mctx, dns_dbnode_t *node);
 /*%<
  * Allocate memory for an rdataslab header and initialize it for use
- * in database 'db'/node 'node'.
+ * in database node 'node'.
  */
 
 void
index 8a2cd0387949efc20a4b16ab8a37094aca84e69f..93ae06cd1858181d7f1065a2c3e703338fa288b0 100644 (file)
@@ -3163,7 +3163,7 @@ qpcache_deleterdataset(dns_db_t *db, dns_dbnode_t *node,
                return ISC_R_NOTIMPLEMENTED;
        }
 
-       newheader = dns_slabheader_new(db, node);
+       newheader = dns_slabheader_new(db->mctx, node);
        newheader->typepair = DNS_TYPEPAIR_VALUE(type, covers);
        setttl(newheader, 0);
        atomic_init(&newheader->attributes, attributes);
index 76eb96c9d554825d32556cb9390bf0f24d62626a..10d1065e1272203d68524c7cbeba1297547e7dd5 100644 (file)
@@ -5026,7 +5026,7 @@ qpzone_subtractrdataset(dns_db_t *db, dns_dbnode_t *dbnode,
                         * add a nonexistent header instead.
                         */
                        dns_slabheader_destroy(&newheader);
-                       newheader = dns_slabheader_new((dns_db_t *)qpdb,
+                       newheader = dns_slabheader_new(db->mctx,
                                                       (dns_dbnode_t *)node);
                        newheader->ttl = 0;
                        newheader->typepair = topheader->typepair;
@@ -5110,7 +5110,7 @@ qpzone_deleterdataset(dns_db_t *db, dns_dbnode_t *dbnode,
                return ISC_R_NOTIMPLEMENTED;
        }
 
-       newheader = dns_slabheader_new(db, (dns_dbnode_t *)node);
+       newheader = dns_slabheader_new(db->mctx, (dns_dbnode_t *)node);
        newheader->typepair = DNS_TYPEPAIR_VALUE(type, covers);
        newheader->ttl = 0;
        atomic_init(&newheader->attributes, DNS_SLABHEADERATTR_NONEXISTENT);
index 35645b66e32d8dab7c854d9ee8c6920ae567ff07..c175f449a0fab75918712d5a81d3f4ea65c94ec8 100644 (file)
@@ -886,14 +886,14 @@ dns_slabheader_reset(dns_slabheader_t *h, dns_dbnode_t *node) {
 }
 
 dns_slabheader_t *
-dns_slabheader_new(dns_db_t *db, dns_dbnode_t *node) {
+dns_slabheader_new(isc_mem_t *mctx, dns_dbnode_t *node) {
        dns_slabheader_t *h = NULL;
 
-       h = isc_mem_get(db->mctx, sizeof(*h));
+       h = isc_mem_get(mctx, sizeof(*h));
        *h = (dns_slabheader_t){
                .link = ISC_LINK_INITIALIZER,
+               .node = node,
        };
-       dns_slabheader_reset(h, node);
        return h;
 }