Fix #17: Reference loop detection fix. This will be part of v1.0-1
This commit is contained in:
parent
d08cd3626d
commit
7f7b4cc7bf
@ -176,6 +176,16 @@ int gds_tree_check_reference_loops(struct gds_library *lib)
|
|||||||
/* iterate through references and check if loop exists */
|
/* iterate through references and check if loop exists */
|
||||||
res = gds_tree_check_iterate_ref_and_check(cell_to_check, &visited_cells);
|
res = gds_tree_check_iterate_ref_and_check(cell_to_check, &visited_cells);
|
||||||
|
|
||||||
|
if (visited_cells) {
|
||||||
|
/* If cell contains no loop, print error when list not empty.
|
||||||
|
* In case of a loop, it is completely normal that the list is not empty,
|
||||||
|
* due to the instant return from gds_tree_check_iterate_ref_and_check()
|
||||||
|
*/
|
||||||
|
if (res == 0)
|
||||||
|
fprintf(stderr, "Visited cell list should be empty. This is a bug. Please report this.\n");
|
||||||
|
g_list_free(visited_cells);
|
||||||
|
}
|
||||||
|
|
||||||
if (res < 0) {
|
if (res < 0) {
|
||||||
/* Error */
|
/* Error */
|
||||||
return res;
|
return res;
|
||||||
@ -190,10 +200,6 @@ int gds_tree_check_reference_loops(struct gds_library *lib)
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (visited_cells) {
|
|
||||||
fprintf(stderr, "Visited cell list should be empty. This is a bug. Please report this.\n");
|
|
||||||
g_list_free(visited_cells);
|
|
||||||
}
|
|
||||||
|
|
||||||
return loop_count;
|
return loop_count;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user