]> granicus.if.org Git - graphviz/commitdiff
Agglomerative_Ink_Bundling_establish: remove 'matching' manual memory management
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Sat, 15 Jan 2022 21:30:52 +0000 (13:30 -0800)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Sun, 16 Jan 2022 18:51:42 +0000 (10:51 -0800)
Gitlab: #2154

lib/mingle/agglomerative_bundling.cpp

index 697d88a83dac1bb9fc323ed17b1b4ff748b5b514..bee4d27151a417c62f0cf9f4824a21f612acbaa4 100644 (file)
@@ -82,7 +82,6 @@ static void Agglomerative_Ink_Bundling_delete(Agglomerative_Ink_Bundling grid){
 
 static Agglomerative_Ink_Bundling Agglomerative_Ink_Bundling_establish(Agglomerative_Ink_Bundling grid, int *pick, double angle_param, double angle){
   /* pick is a work array of dimension n, with n the total number of original edges */
-  int *matching;
   SparseMatrix A = grid->A;
   int n = grid->n, level = grid->level, nc = 0;
   int *ia = A->ia, *ja = A->ja;
@@ -106,12 +105,11 @@ static Agglomerative_Ink_Bundling Agglomerative_Ink_Bundling_establish(Agglomera
     jp = grid->R0->ja;
   }
 
-  matching = (int*)MALLOC(sizeof(int)*n);
   mask = (int*)MALLOC(sizeof(double)*n);
   for (i = 0; i < n; i++) mask[i] = -1;
 
   assert(n == A->n);
-  for (i = 0; i < n; i++) matching[i] = UNMATCHED;
+  std::vector<int> matching(n, UNMATCHED);
 
   for (i = 0; i < n; i++){
     if (matching[i] != UNMATCHED) continue;
@@ -287,7 +285,6 @@ static Agglomerative_Ink_Bundling Agglomerative_Ink_Bundling_establish(Agglomera
   }
 
  RETURN:
-  free(matching);
   free(mask);
   return grid;
 }