util: Add qsort_r/s args adapter for MSVC and BSD/macOS
authorEnrico Galli <enrico.galli@intel.com>
Mon, 7 Jun 2021 22:52:29 +0000 (15:52 -0700)
committerMarge Bot <eric+marge@anholt.net>
Thu, 24 Jun 2021 20:05:12 +0000 (20:05 +0000)
commitcf385cf68c542c2391052d692582bdc0f723dc65
treee17e5e52211514f76efb09b2785ffa07a1a9d645
parent1df2acfbb81f37e4c3d2a49f570ccfc96b32eb8c
util: Add qsort_r/s args adapter for MSVC and BSD/macOS

MSVC's qsort_s behaves similarly to sort_r. Unfortunately, qsort_s's
compare function has the "context"/"args" as its first argument. BSD's
qsort_r has a different order than GNU's qsort_r. Finally, C11 added
qsort_s's which look like GNU's gsort_r.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10989>
meson.build
src/util/u_qsort.cpp
src/util/u_qsort.h