diff options
author | lhchavez <lhchavez@lhchavez.com> | 2021-08-26 05:50:23 -0700 |
---|---|---|
committer | lhchavez <lhchavez@lhchavez.com> | 2021-08-26 06:12:13 -0700 |
commit | 94008e6aae0b4f1b4fcaa2e772da99764072cd7f (patch) | |
tree | 0f1399666cfa12c722cf53780de2b201089b321d | |
parent | 47c70fc54e1c521ba240429d7c7387a3b1f1ee65 (diff) | |
download | libgit2-94008e6aae0b4f1b4fcaa2e772da99764072cd7f.tar.gz |
Fixups for the latest changes in the array interface
-rw-r--r-- | src/commit_graph.c | 32 |
1 files changed, 21 insertions, 11 deletions
diff --git a/src/commit_graph.c b/src/commit_graph.c index 1601c630c..8323485b6 100644 --- a/src/commit_graph.c +++ b/src/commit_graph.c @@ -832,7 +832,8 @@ static int compute_generation_numbers(git_vector *commits) *(size_t *)git_array_alloc(index_stack) = i; while (git_array_size(index_stack)) { - i = *git_array_pop(index_stack); + size_t *index_ptr = git_array_pop(index_stack); + i = *index_ptr; child_packed_commit = git_vector_get(commits, i); if (commit_states[i] == GENERATION_NUMBER_COMMIT_STATE_VISITED) { @@ -1017,6 +1018,7 @@ commit_graph_write(git_commit_graph_writer *w, commit_graph_write_cb write_cb, v uint64_t commit_time; uint32_t generation; uint32_t word; + size_t *packed_index; unsigned int parentcount = (unsigned int)git_array_size(packed_commit->parents); error = git_buf_put( @@ -1026,20 +1028,24 @@ commit_graph_write(git_commit_graph_writer *w, commit_graph_write_cb write_cb, v if (error < 0) goto cleanup; - if (parentcount == 0) + if (parentcount == 0) { word = htonl(GIT_COMMIT_GRAPH_MISSING_PARENT); - else - word = htonl((uint32_t)*git_array_get(packed_commit->parent_indices, 0)); + } else { + packed_index = git_array_get(packed_commit->parent_indices, 0); + word = htonl((uint32_t)*packed_index); + } error = git_buf_put(&commit_data, (const char *)&word, sizeof(word)); if (error < 0) goto cleanup; - if (parentcount < 2) + if (parentcount < 2) { word = htonl(GIT_COMMIT_GRAPH_MISSING_PARENT); - else if (parentcount == 2) - word = htonl((uint32_t)*git_array_get(packed_commit->parent_indices, 1)); - else + } else if (parentcount == 2) { + packed_index = git_array_get(packed_commit->parent_indices, 1); + word = htonl((uint32_t)*packed_index); + } else { word = htonl(0x80000000u | extra_edge_list_count); + } error = git_buf_put(&commit_data, (const char *)&word, sizeof(word)); if (error < 0) goto cleanup; @@ -1047,9 +1053,13 @@ commit_graph_write(git_commit_graph_writer *w, commit_graph_write_cb write_cb, v if (parentcount > 2) { unsigned int parent_i; for (parent_i = 1; parent_i < parentcount; ++parent_i) { - word = htonl((uint32_t)( - *git_array_get(packed_commit->parent_indices, parent_i) - | (parent_i + 1 == parentcount ? 0x80000000u : 0))); + packed_index = git_array_get( + packed_commit->parent_indices, parent_i); + word = htonl( + (uint32_t)(*packed_index + | (parent_i + 1 == parentcount + ? 0x80000000u + : 0))); error = git_buf_put( &extra_edge_list, (const char *)&word, |