Fix #17: Reference loop detection fix. This will be part of v1.0-1

This commit is contained in:
Mario Hüttel 2019-06-08 13:32:42 +02:00
parent d08cd3626d
commit 7f7b4cc7bf
1 changed files with 10 additions and 4 deletions

View File

@ -176,6 +176,16 @@ int gds_tree_check_reference_loops(struct gds_library *lib)
/* iterate through references and check if loop exists */
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) {
/* Error */
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;
}