1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

list: fixed compatability bug in list_sort() on BSD-based systems

This commit is contained in:
Steffen Vogel 2018-10-21 16:46:26 +01:00
parent fc3e292213
commit 8acd434952

View file

@ -41,7 +41,12 @@ static int cmp_contains(const void *a, const void *b) {
return a == b ? 0 : 1;
}
#ifdef __APPLE__
static int cmp_sort(void *thunk, const void *a, const void *b) {
#else
static int cmp_sort(const void *a, const void *b, void *thunk) {
#endif
cmp_cb_t cmp = (cmp_cb_t) thunk;
return cmp(*(void **) a, *(void **) b);
@ -193,7 +198,11 @@ void list_sort(struct list *l, cmp_cb_t cmp)
assert(l->state == STATE_INITIALIZED);
#ifdef __APPLE__
qsort_r(l->array, l->length, sizeof(void *), (void *) cmp, cmp_sort);
#else
qsort_r(l->array, l->length, sizeof(void *), cmp_sort, (void *) cmp);
#endif
pthread_mutex_unlock(&l->lock);
}