diff options
author | Sergey Poznyakoff <gray@gnu.org> | 2020-10-18 22:20:16 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org> | 2020-10-18 22:20:16 +0300 |
commit | c26297063aa2dad0fecd28791a47a8bffcfc9925 (patch) | |
tree | 964990a4dd3c62bf0f25f248518b729403eb3c1a /src/pies.c | |
parent | a7f3e6adb0ffbe56d9b521522d22cf758ee6acb7 (diff) | |
download | pies-c26297063aa2dad0fecd28791a47a8bffcfc9925.tar.gz pies-c26297063aa2dad0fecd28791a47a8bffcfc9925.tar.bz2 |
Fix cyclic dependecy detection and reporting.
Use modified Floyd-Warshall algorithm for cyclic dependecy detection.
The computed next vertex indices are used when reporting the cycles
found.
This fixes dead loops that occurred in earlier versions when trying to
report cycles. One of inputs that caused such behavior is used as a
new test in cyclic.at.
* src/depmap.c: Rewrite using modified Floyd-Warshall algorithm.
(depmap_cycle_detect,depmap_path_free): New functions.
* src/comp.c (report_cyclic_dependency): Take struct depmap_path *
as argument.
(component_build_depmap): Use depmap_cycle_detect to detect cyclic
dependencies.
(depmap_dump): Special handling for zero-sized depmap.
* tests/cyclic.at: Add new test.
* src/pies.h (depmap_dim, depmap_free)
(depmap_cycle_detect,depmap_path_free): New protos.
* NEWS: Document changes.
Diffstat (limited to 'src/pies.c')
-rw-r--r-- | src/pies.c | 1 |
1 files changed, 0 insertions, 1 deletions
@@ -2332,7 +2332,6 @@ main (int argc, char **argv) extern char **environ; struct grecs_list_entry *ep; int diag_flags; - int i; set_program_name (argv[0]); #ifdef ENABLE_NLS |