add QSORT
commitdbc540c7a5827529a3f58befc9e5b81a31ec8fab
authorRené Scharfe <l.s.r@web.de>
Thu, 29 Sep 2016 15:23:43 +0000 (29 17:23 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 29 Sep 2016 22:42:18 +0000 (29 15:42 -0700)
treecd2c485c62e68411e418616c6ca26923e24b3e1b
parent21f862b498925194f8f1ebe8203b7a7df756555b
add QSORT

Add the macro QSORT, a convenient wrapper for qsort(3) that infers the
size of the array elements and supports the convention of initializing
empty arrays with a NULL pointer, which we use in some places.

Calling qsort(3) directly with a NULL pointer is undefined -- even with
an element count of zero -- and allows the compiler to optimize away any
following NULL checks.  Using the macro avoids such surprises.

Add a semantic patch as well to demonstrate the macro's usage and to
automate the transformation of trivial cases.

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/coccinelle/qsort.cocci [new file with mode: 0644]
git-compat-util.h