Commit 457a81bb0b04d55da687f28a5665fc4fc6907f77

Edward Thomson 2018-01-21T18:01:20

oidarray: introduce git_oidarray__reverse Provide a simple function to reverse an oidarray.

diff --git a/src/oidarray.c b/src/oidarray.c
index 1d51a29..99b7bd1 100644
--- a/src/oidarray.c
+++ b/src/oidarray.c
@@ -19,3 +19,15 @@ void git_oidarray__from_array(git_oidarray *arr, git_array_oid_t *array)
 	arr->count = array->size;
 	arr->ids = array->ptr;
 }
+
+void git_oidarray__reverse(git_oidarray *arr)
+{
+	size_t i;
+	git_oid tmp;
+
+	for (i = 0; i < arr->count / 2; i++) {
+		git_oid_cpy(&tmp, &arr->ids[i]);
+		git_oid_cpy(&arr->ids[i], &arr->ids[(arr->count-1)-i]);
+		git_oid_cpy(&arr->ids[(arr->count-1)-i], &tmp);
+	}
+}
diff --git a/src/oidarray.h b/src/oidarray.h
index a7215ae..db7e1ac 100644
--- a/src/oidarray.h
+++ b/src/oidarray.h
@@ -13,6 +13,7 @@
 
 typedef git_array_t(git_oid) git_array_oid_t;
 
+extern void git_oidarray__reverse(git_oidarray *arr);
 extern void git_oidarray__from_array(git_oidarray *arr, git_array_oid_t *array);
 
 #endif