Commit 59e3f45b6150984e6a74ce79062caa459eda369f

Vicent Marti 2014-07-25T11:27:51

Merge pull request #2487 from libgit2/cmn/revwalk-no-prealloc Work around strict aliasing in array growth

diff --git a/src/array.h b/src/array.h
index f8a4872..af9eafa 100644
--- a/src/array.h
+++ b/src/array.h
@@ -44,7 +44,7 @@ typedef git_array_t(char) git_array_generic_t;
 /* use a generic array for growth so this can return the new item */
 GIT_INLINE(void *) git_array_grow(void *_a, size_t item_size)
 {
-	git_array_generic_t *a = _a;
+	volatile git_array_generic_t *a = _a;
 	uint32_t new_size = (a->size < 8) ? 8 : a->asize * 3 / 2;
 	char *new_array = git__realloc(a->ptr, new_size * item_size);
 	if (!new_array) {
diff --git a/src/revwalk.c b/src/revwalk.c
index 530c970..bd07d02 100644
--- a/src/revwalk.c
+++ b/src/revwalk.c
@@ -48,9 +48,6 @@ static int mark_uninteresting(git_revwalk *walk, git_commit_list_node *commit)
 
 	assert(commit);
 
-	git_array_init_to_size(pending, 2);
-	GITERR_CHECK_ARRAY(pending);
-
 	do {
 		commit->uninteresting = 1;