Index: trunk/src_plugins/autoroute/autoroute.c =================================================================== --- trunk/src_plugins/autoroute/autoroute.c (revision 37947) +++ trunk/src_plugins/autoroute/autoroute.c (revision 37948) @@ -1226,7 +1226,9 @@ int i; for (i = 0; i < pcb_max_group(PCB); i++) { rnd_r_free_tree_data((*rd)->layergrouptree[i], free); - rnd_r_destroy_tree(&(*rd)->layergrouptree[i]); + rnd_rtree_uninit((*rd)->layergrouptree[i]); + free((*rd)->layergrouptree[i]); + (*rd)->layergrouptree[i] = NULL; } if (AutoRouteParameters.use_vias) mtspace_destroy(&(*rd)->mtspace); @@ -4041,7 +4043,9 @@ } touch_conflicts(NULL, 1); rnd_heap_destroy(&s.workheap); - rnd_r_destroy_tree(&targets); + rnd_rtree_uninit(targets); + free(targets); + targets = NULL; assert(vector_is_empty(edge_vec)); vector_destroy(&edge_vec); Index: trunk/src_plugins/autoroute/mtspace.c =================================================================== --- trunk/src_plugins/autoroute/mtspace.c (revision 37947) +++ trunk/src_plugins/autoroute/mtspace.c (revision 37948) @@ -120,9 +120,13 @@ rnd_r_free_tree_data((*mtspacep)->ftree, free); rnd_r_free_tree_data((*mtspacep)->etree, free); rnd_r_free_tree_data((*mtspacep)->otree, free); - rnd_r_destroy_tree(&(*mtspacep)->ftree); - rnd_r_destroy_tree(&(*mtspacep)->etree); - rnd_r_destroy_tree(&(*mtspacep)->otree); + + rnd_rtree_uninit((*mtspacep)->ftree); + rnd_rtree_uninit((*mtspacep)->etree); + rnd_rtree_uninit((*mtspacep)->otree); + free((*mtspacep)->ftree); + free((*mtspacep)->etree); + free((*mtspacep)->otree); free(*mtspacep); *mtspacep = NULL; }