Skip to content

Commit 27b470d

Browse files
committed
Add comment on why rt_node needs to be set to nullptr
1 parent 0f2cc51 commit 27b470d

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

vpr/src/route/route_tree_timing.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,9 @@ alloc_rt_node() {
144144
return (rt_node);
145145
}
146146

147+
/* After putting the rt_node to the free list, rt_node pointer would be set to
148+
* nullptr to make sure that it does not get double frees if a caller tries to
149+
* free the routing tree twice */
147150
static void free_rt_node(t_rt_node** rt_node) {
148151
/* Adds rt_node to the proper free list. */
149152

@@ -659,8 +662,6 @@ bool verify_route_tree_recurr(t_rt_node* node, std::set<int>& seen_nodes) {
659662
}
660663

661664
void free_route_tree(t_rt_node* rt_node) {
662-
/* Puts the rt_nodes and edges in the tree rooted at rt_node back on the
663-
* free lists. Recursive, depth-first post-order traversal. */
664665
if(rt_node == nullptr) {
665666
return;
666667
}

vpr/src/route/route_tree_timing.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ void free_route_tree_timing_structs();
1515

1616
t_rt_node* init_route_tree_to_source(ClusterNetId inet);
1717

18+
/*
19+
* Puts the rt_nodes and edges in the tree rooted at rt_node back on the
20+
* free lists. Recursive, depth-first post-order traversal.
21+
*/
1822
void free_route_tree(t_rt_node* rt_node);
1923
void print_route_tree(const t_rt_node* rt_node);
2024
void print_route_tree(const t_rt_node* rt_node, int depth);

0 commit comments

Comments
 (0)