diff --git a/src/graph.c b/src/graph.c index 5e1a096a..c0f5fb9d 100644 --- a/src/graph.c +++ b/src/graph.c @@ -110,13 +110,14 @@ graph_t *graph_read(FILE *f) { goto exit_graph_allocated; } - g->indptr = indptr; - for (int i = 0; i < len_indptr; i++) { if (!file_read_uint32(f, indptr->a + i)) { goto exit_graph_allocated; } } + indptr->n = (size_t)len_indptr; + + g->indptr = indptr; uint64_t len_indices; @@ -129,13 +130,15 @@ graph_t *graph_read(FILE *f) { goto exit_graph_allocated; } - g->indices = indices; - for (int i = 0; i < len_indices; i++) { if (!file_read_uint32(f, indices->a + i)) { goto exit_graph_allocated; } } + + indices->n = (size_t)len_indices; + + g->indices = indices; return g; @@ -155,7 +158,7 @@ bool graph_write(graph_t *self, FILE *f) { return false; } - uint64_t len_indptr = self->indptr->n; + uint64_t len_indptr = (uint64_t)self->indptr->n; if (!file_write_uint64(f, len_indptr)) { return false; diff --git a/src/sparse_matrix.c b/src/sparse_matrix.c index 82246cd2..a884ef41 100644 --- a/src/sparse_matrix.c +++ b/src/sparse_matrix.c @@ -284,8 +284,6 @@ sparse_matrix_t *sparse_matrix_read(FILE *f) { goto exit_sparse_matrix_allocated; } - sp->indptr = indptr; - for (int i = 0; i < len_indptr; i++) { if (!file_read_uint32(f, indptr->a + i)) { printf("indptr\n"); @@ -293,6 +291,9 @@ sparse_matrix_t *sparse_matrix_read(FILE *f) { } } + indptr->n = (size_t)len_indptr; + sp->indptr = indptr; + uint64_t len_indices; if (!file_read_uint64(f, &len_indices)) { @@ -306,8 +307,6 @@ sparse_matrix_t *sparse_matrix_read(FILE *f) { goto exit_sparse_matrix_allocated; } - sp->indices = indices; - for (int i = 0; i < len_indices; i++) { if (!file_read_uint32(f, indices->a + i)) { printf("indices\n"); @@ -315,6 +314,9 @@ sparse_matrix_t *sparse_matrix_read(FILE *f) { } } + indices->n = (size_t)len_indices; + sp->indices = indices; + uint64_t len_data; if (!file_read_uint64(f, &len_data)) { @@ -328,8 +330,6 @@ sparse_matrix_t *sparse_matrix_read(FILE *f) { goto exit_sparse_matrix_allocated; } - sp->data = data; - for (int i = 0; i < len_data; i++) { if (!file_read_double(f, data->a + i)) { printf("data\n"); @@ -337,6 +337,9 @@ sparse_matrix_t *sparse_matrix_read(FILE *f) { } } + data->n = (size_t)len_data; + sp->data = data; + return sp; exit_sparse_matrix_allocated: