]> granicus.if.org Git - graphviz/commitdiff
Move maxiter check after the feasible_tree() call.
authorRob Hart <robhart@google.com>
Tue, 8 Dec 2020 13:01:24 +0000 (05:01 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 19 Feb 2022 02:07:44 +0000 (18:07 -0800)
Edit from Matt: changelog entry and un-xfailed the test case.

Quoting the description of MR !1688 if it ever ends up lost to the sands of
time:

  If `nslimit1` is zero, then `rank2` is called with `maxiter=0`. It is likely
  the intent here is to at least compute and return an initial feasible solution
  (though not running any network simplex iterations).

Gitlab: fixes #1902

Co-authored-by: Matthew Fernandez <matthew.fernandez@gmail.com>
CHANGELOG.md
lib/common/ns.c
rtest/test_regression.py

index f998c4b9b69cd750939bd48a5ee97a2019bfbab4..05cfc529a1eff85857cb47b6655994d3f839e4d4 100644 (file)
@@ -100,6 +100,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 - stdout and stderr are not flushed at exit on MinGW #2178
 - Gvedit on macOS now understands the `-?` help command line argument
 - CMAKE_LIBRARY_PATH is not honored #1973
+- assert failure with `nslimit1=0` #1902
 
 ## [2.50.0] – 2021-12-04
 
index 3c2244419f9bb16df01ed38cdb67e78e9934304c..cf7c2451b36c5f346c846ee4dc104109645d1583 100644 (file)
@@ -857,10 +857,6 @@ int rank2(graph_t * g, int balance, int maxiter, int search_size)
     feasible = init_graph(g);
     if (!feasible)
        init_rank();
-    if (maxiter <= 0) {
-       freeTreeList (g);
-       return 0;
-    }
 
     if (search_size >= 0)
        Search_size = search_size;
@@ -874,6 +870,11 @@ int rank2(graph_t * g, int balance, int maxiter, int search_size)
            return err;
        }
     }
+    if (maxiter <= 0) {
+       freeTreeList (g);
+       return 0;
+    }
+
     while ((e = leave_edge())) {
        int err;
        f = enter_edge(e);
index e1467ac804ea660e5cc21a7a1813ecf26d7b3845..fe7d515f2c9d6a273cec6cf98322a5d9c5e1e177 100644 (file)
@@ -791,7 +791,6 @@ def test_1898():
   # has been reintroduced
   dot("svg", input)
 
-@pytest.mark.xfail(strict=not is_ndebug_defined()) # FIXME
 def test_1902():
   """
   test a segfault from https://gitlab.com/graphviz/graphviz/-/issues/1902 has