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).
* 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