]> granicus.if.org Git - graphviz/commitdiff
sparse: rewrite 'memcpy' steps in 'SparseMatrix_coordinate_form_add_entries'
authorMatthew Fernandez <matthew.fernandez@gmail.com>
Mon, 23 May 2022 00:03:22 +0000 (17:03 -0700)
committerMatthew Fernandez <matthew.fernandez@gmail.com>
Fri, 27 May 2022 01:03:43 +0000 (18:03 -0700)
Now that we know these steps are always copying a single element, we can write
them simpler.

lib/sparse/SparseMatrix.c

index 985c6253a227d7ae5b72da473329f8a0bd32db10..347555b0ff4f40edc9f9951053b0f5a1183034b4 100644 (file)
@@ -1609,8 +1609,8 @@ SparseMatrix SparseMatrix_coordinate_form_add_entries(SparseMatrix A, int *irn,
      nzmax = MAX(10, (int) 0.2*nzmax) + nzmax;
     A = SparseMatrix_realloc(A, nzmax);
   }
-  memcpy((char*) A->ia + ((size_t)nz)*sizeof(int)/sizeof(char), irn, sizeof(int)*((size_t)nentries));
-  memcpy((char*) A->ja + ((size_t)nz)*sizeof(int)/sizeof(char), jcn, sizeof(int)*((size_t)nentries));
+  A->ia[nz] = *irn;
+  A->ja[nz] = *jcn;
   if (A->size) memcpy((char*) A->a + ((size_t)nz)*A->size/sizeof(char), val, A->size*((size_t)nentries));
   if (irn[0] >= A->m) A->m = irn[0] + 1;
   if (jcn[0] >= A->n) A->n = jcn[0] + 1;