Index: autoroute.c =================================================================== --- autoroute.c (revision 37975) +++ autoroute.c (revision 37976) @@ -90,6 +90,8 @@ #include "obj_pstk_draw.h" #include "obj_pstk_inlines.h" +#include "r_legacy.h" + #define autoroute_therm_style 4 /* #defines to enable some debugging output */ @@ -1196,7 +1198,7 @@ for (i = 0; i < pcb_max_group(PCB); i++) { /* create the r-tree */ rnd_rtree_init(rd->layergrouptree[i] = malloc(sizeof(rnd_rtree_t))); - rnd_r_insert_array(rd->layergrouptree[i], (const rnd_box_t **) layergroupboxes[i].array, vtp0_len(&layergroupboxes[i])); + r_insert_array(rd->layergrouptree[i], (const rnd_box_t **) layergroupboxes[i].array, vtp0_len(&layergroupboxes[i])); } if (AutoRouteParameters.use_vias) { @@ -1225,7 +1227,7 @@ { int i; for (i = 0; i < pcb_max_group(PCB); i++) { - rnd_r_free_tree_data((*rd)->layergrouptree[i], free); + r_free_tree_data((*rd)->layergrouptree[i], free); rnd_rtree_uninit((*rd)->layergrouptree[i]); free((*rd)->layergrouptree[i]); (*rd)->layergrouptree[i] = NULL; @@ -3728,7 +3730,7 @@ } PCB_END_LOOP; rnd_rtree_init(targets = malloc(sizeof(rnd_rtree_t))); - rnd_r_insert_array(targets, (const rnd_box_t **)target_list, i); + r_insert_array(targets, (const rnd_box_t **)target_list, i); assert(i <= num_targets); free(target_list); Index: mtspace.c =================================================================== --- mtspace.c (revision 37975) +++ mtspace.c (revision 37976) @@ -55,6 +55,8 @@ #include "vector.h" #include +#include "r_legacy.h" + /* mtspace data structures are built on r-trees. */ typedef struct mtspacebox { @@ -117,9 +119,9 @@ void mtspace_destroy(mtspace_t ** mtspacep) { assert(mtspacep); - rnd_r_free_tree_data((*mtspacep)->ftree, free); - rnd_r_free_tree_data((*mtspacep)->etree, free); - rnd_r_free_tree_data((*mtspacep)->otree, free); + r_free_tree_data((*mtspacep)->ftree, free); + r_free_tree_data((*mtspacep)->etree, free); + r_free_tree_data((*mtspacep)->otree, free); rnd_rtree_uninit((*mtspacep)->ftree); rnd_rtree_uninit((*mtspacep)->etree); Index: r_legacy.h =================================================================== --- r_legacy.h (nonexistent) +++ r_legacy.h (revision 37976) @@ -0,0 +1,24 @@ +/* Recurring legacy rtree operations for autoroute and autoplace + DO NOT USE IN NEW CODE */ + +RND_INLINE void r_free_tree_data(rnd_rtree_t *rtree, void (*free)(void *ptr)) +{ + rnd_rtree_it_t it; + void *o; + + for(o = rnd_rtree_all_first(&it, rtree); o != NULL; o = rnd_rtree_all_next(&it)) + free(o); +} + +RND_INLINE void r_insert_array(rnd_rtree_t *rtree, const rnd_box_t *boxlist[], rnd_cardinal_t len) +{ + rnd_cardinal_t n; + + if (len == 0) + return; + + assert(boxlist != 0); + + for(n = 0; n < len; n++) + rnd_rtree_insert(rtree, (void *)boxlist[n], (rnd_rtree_box_t *)boxlist[n]); +}