summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlhchavez <lhchavez@lhchavez.com>2021-08-26 05:50:23 -0700
committerlhchavez <lhchavez@lhchavez.com>2021-08-26 06:12:13 -0700
commit94008e6aae0b4f1b4fcaa2e772da99764072cd7f (patch)
tree0f1399666cfa12c722cf53780de2b201089b321d
parent47c70fc54e1c521ba240429d7c7387a3b1f1ee65 (diff)
downloadlibgit2-94008e6aae0b4f1b4fcaa2e772da99764072cd7f.tar.gz
Fixups for the latest changes in the array interface
-rw-r--r--src/commit_graph.c32
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,