From: Ondřej Surý Date: Wed, 17 Dec 2025 05:59:33 +0000 (+0100) Subject: Add dns_rdataset_cleanup() that conditionally disassociate rdataset X-Git-Tag: v9.21.17~29^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cabe3aee3bd61d408f15eae2e6b9091ba6d54e32;p=thirdparty%2Fbind9.git Add dns_rdataset_cleanup() that conditionally disassociate rdataset We had a common pattern in the code that looks like this: if (dns_rdataset_isassociated(rdataset)) { dns_rdataset_disassociate(rdataset); } add a helper macro that checks for rdataset != NULL and the above called dns_rdataset_cleanup(rdataset). --- diff --git a/lib/dns/include/dns/rdataset.h b/lib/dns/include/dns/rdataset.h index 49b8a9e1a37..17f5eff088d 100644 --- a/lib/dns/include/dns/rdataset.h +++ b/lib/dns/include/dns/rdataset.h @@ -285,6 +285,10 @@ dns_rdataset_invalidate(dns_rdataset_t *rdataset); * without initializing it will cause an assertion failure. */ +#define dns_rdataset_cleanup(rdataset) \ + if (rdataset != NULL && dns_rdataset_isassociated(rdataset)) { \ + dns__rdataset_disassociate(rdataset DNS__DB_FILELINE); \ + } #define dns_rdataset_disassociate(rdataset) \ dns__rdataset_disassociate(rdataset DNS__DB_FILELINE) void