Merge r272385 by melifaro from head:

Free radix mask entries on main radix destroy.
  This is temporary commit to be merged to 10.
  Other approach (like hash table) should be used
  to store different masks.

PR:             194078
This commit is contained in:
glebius 2014-10-16 20:46:02 +00:00
parent 86f98e492e
commit 9ea3e68626

View File

@ -1204,6 +1204,18 @@ rn_inithead(void **head, int off)
return (1);
}
static int
rn_freeentry(struct radix_node *rn, void *arg)
{
struct radix_node_head * const rnh = arg;
struct radix_node *x;
x = (struct radix_node *)rn_delete(rn + 2, NULL, rnh);
if (x != NULL)
Free(x);
return (0);
}
int
rn_detachhead(void **head)
{
@ -1214,6 +1226,7 @@ rn_detachhead(void **head)
rnh = *head;
rn_walktree(rnh->rnh_masks, rn_freeentry, rnh->rnh_masks);
rn_detachhead_internal((void **)&rnh->rnh_masks);
rn_detachhead_internal(head);
return (1);