summaryrefslogtreecommitdiff
path: root/lib/dns/ecdb.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dns/ecdb.c')
-rw-r--r--lib/dns/ecdb.c23
1 files changed, 13 insertions, 10 deletions
diff --git a/lib/dns/ecdb.c b/lib/dns/ecdb.c
index 8b3f7740081bd..22cd810a773c7 100644
--- a/lib/dns/ecdb.c
+++ b/lib/dns/ecdb.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2009-2011, 2013 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2009-2011, 2013, 2014 Internet Systems Consortium, Inc. ("ISC")
*
* Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
@@ -14,8 +14,6 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: ecdb.c,v 1.10 2011/12/20 00:06:53 marka Exp $ */
-
#include "config.h"
#include <isc/result.h>
@@ -772,19 +770,24 @@ rdataset_settrust(dns_rdataset_t *rdataset, dns_trust_t trust) {
static void
rdatasetiter_destroy(dns_rdatasetiter_t **iteratorp) {
- ecdb_rdatasetiter_t *ecdbiterator;
isc_mem_t *mctx;
+ union {
+ dns_rdatasetiter_t *rdatasetiterator;
+ ecdb_rdatasetiter_t *ecdbiterator;
+ } u;
REQUIRE(iteratorp != NULL);
- ecdbiterator = (ecdb_rdatasetiter_t *)*iteratorp;
- REQUIRE(DNS_RDATASETITER_VALID(&ecdbiterator->common));
+ REQUIRE(DNS_RDATASETITER_VALID(*iteratorp));
- mctx = ecdbiterator->common.db->mctx;
+ u.rdatasetiterator = *iteratorp;
- ecdbiterator->common.magic = 0;
+ mctx = u.ecdbiterator->common.db->mctx;
+ u.ecdbiterator->common.magic = 0;
- dns_db_detachnode(ecdbiterator->common.db, &ecdbiterator->common.node);
- isc_mem_put(mctx, ecdbiterator, sizeof(ecdb_rdatasetiter_t));
+ dns_db_detachnode(u.ecdbiterator->common.db,
+ &u.ecdbiterator->common.node);
+ isc_mem_put(mctx, u.ecdbiterator,
+ sizeof(ecdb_rdatasetiter_t));
*iteratorp = NULL;
}