and use it within dns_rbt_findnode.
moved the guts of dns_rbt_deletename into its own function to clean up
the freeing of ancestor memory into just one location.
deletefromlevel required that ancestor_count be > 1, which would abort
trying to delete the root of the tree when the root had no children.
ancestor/level history no longer kept in rbt structure; node_chain structure
was created for this purpose, and each dns_rbt_deletename call will pass
the chain structure to dns_rbt_findnode.
color enum removed from rbtnode structure; single bit used instead
length of name in rbtnode no longer kept as int in rbtnode structure;
stored as single byte just past end of rbtnode, and the actual name data starts
two bytes past the end.
dns_rbt_create takes additional argument that is a pointer to a function
which is responsible for deleting the space pointed to by an rbtnode's data
pointer when the node is removed.
dns_rbt_addnode renamed to dns_rbt_addonlevel so that dns_rbt_addnode could
be a public function that can provide the address of the new node back
to the caller.
removed several #if 0 blocks that were held over from when parent pointers
were used.
after the structure.
color stored in single bit
references bitfield width decrease by one
typedef for a node_chain structure, used by dns_rbt_findnode
dns_rbt_create takes a new second argument that is a pointer to a function
which frees node data when the node is deleted.
dns_rbt_addnode provided to return the node that was added.
than isc_mem_t * to provide a general mechanism to pass context to
the call back. dns_load_master() has an additional arguement to
support this. to get the old behaviour set the arguement, private,
to the same value as mctx.