summaryrefslogtreecommitdiff
path: root/src/util.h
diff options
context:
space:
mode:
authorRussell Belfer <rb@github.com>2013-03-11 16:43:58 -0700
committerRussell Belfer <rb@github.com>2013-03-11 16:43:58 -0700
commit62beacd300a6d3c62943723928f45ef852485e62 (patch)
tree88ec71b10d83cc0133ee39c3802f012fd4e2df83 /src/util.h
parenta5eea2d7b760ebef0d2f397d763ec8eff32f38cd (diff)
downloadlibgit2-62beacd300a6d3c62943723928f45ef852485e62.tar.gz
Sorting function cleanup and MinGW fix
Clean up some sorting function stuff including fixing qsort_r on MinGW, common function pointer type for comparison, and basic insertion sort implementation (which we, regrettably, fall back on for MinGW).
Diffstat (limited to 'src/util.h')
-rw-r--r--src/util.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/util.h b/src/util.h
index e77f17efc..c0f271997 100644
--- a/src/util.h
+++ b/src/util.h
@@ -146,15 +146,17 @@ typedef int (*git__tsort_cmp)(const void *a, const void *b);
extern void git__tsort(void **dst, size_t size, git__tsort_cmp cmp);
-typedef int (*git__tsort_r_cmp)(const void *a, const void *b, void *payload);
+typedef int (*git__sort_r_cmp)(const void *a, const void *b, void *payload);
extern void git__tsort_r(
- void **dst, size_t size, git__tsort_r_cmp cmp, void *payload);
-
-typedef int (*git__qsort_r_cmp)(const void *a, const void *b, void *payload);
+ void **dst, size_t size, git__sort_r_cmp cmp, void *payload);
extern void git__qsort_r(
- void *els, size_t nel, size_t elsize, git__qsort_r_cmp cmp, void *payload);
+ void *els, size_t nel, size_t elsize, git__sort_r_cmp cmp, void *payload);
+
+extern void git__insertsort_r(
+ void *els, size_t nel, size_t elsize, void *swapel,
+ git__sort_r_cmp cmp, void *payload);
/**
* @param position If non-NULL, this will be set to the position where the