]> granicus.if.org Git - graphviz/commitdiff
remove useless inner loop in ANN bridge
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 14 Feb 2021 05:38:09 +0000 (21:38 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 20 Feb 2021 16:04:15 +0000 (08:04 -0800)
Iterations after the first pass were no-ops. Closes #1938.

CHANGELOG.md
lib/mingle/nearest_neighbor_graph_ann.cpp

index efb26bebcb011b5f5bd3a1d2c9a2761de4f78f42..635584d50c715809f6824470d18a189a40700cd0 100644 (file)
@@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 - typos in gpcanvas.c #1927
 - memory leak in libmingle
 - private inheritance in IncVPSC #1874
+- broken sorting in nearest_neighbor_graph_ann.cpp #1938
 
 ## [2.46.0] - 2021-02-13
 
index 1abb182a66980d103e5cd7adb5e2e7ebafad1e07..75ea96ba9645c3e2999fec25c17cd3ea084df8cb 100644 (file)
@@ -36,17 +36,15 @@ static void sortPtsX(int n, ANNpointArray pts){
   /* sort so that edges always go from left to right in x-doordinate */
   ANNpoint p;
   ANNcoord x, y;
-  int i, j;
+  int i;
   for (i = 0; i < n; i++){
-    for (j = 0; j < dim; j++){
-      p = pts[i];
-      if (p[0] < p[2] || (p[0] == p[2] && p[1] < p[3])) continue;
-      x = p[0]; y = p[1];
-      p[0] = p[2];
-      p[1] = p[3];
-      p[2] = x;
-      p[3] = y;
-    }
+    p = pts[i];
+    if (p[0] < p[2] || (p[0] == p[2] && p[1] < p[3])) continue;
+    x = p[0]; y = p[1];
+    p[0] = p[2];
+    p[1] = p[3];
+    p[2] = x;
+    p[3] = y;
   }
 }
 
@@ -54,17 +52,15 @@ static void sortPtsY(int n, ANNpointArray pts){
   /* sort so that edges always go from left to right in x-doordinate */
   ANNpoint p;
   ANNcoord x, y;
-  int i, j;
+  int i;
   for (i = 0; i < n; i++){
-    for (j = 0; j < dim; j++){
-      p = pts[i];
-      if (p[1] < p[3] || (p[1] == p[3] && p[0] < p[2])) continue;
-      x = p[0]; y = p[1];
-      p[0] = p[2];
-      p[1] = p[3];
-      p[2] = x;
-      p[3] = y;
-    }
+    p = pts[i];
+    if (p[1] < p[3] || (p[1] == p[3] && p[0] < p[2])) continue;
+    x = p[0]; y = p[1];
+    p[0] = p[2];
+    p[1] = p[3];
+    p[2] = x;
+    p[3] = y;
   }
 }