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).
This commit is contained in:
Ondřej Surý 2025-12-17 06:59:33 +01:00
parent d00f69e450
commit cabe3aee3b
No known key found for this signature in database
GPG key ID: 2820F37E873DEA41

View file

@ -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