[sgen] Fix sgen_qsort.
authorJon Purdy <evincarofautumn@gmail.com>
Thu, 3 Nov 2016 19:36:09 +0000 (12:36 -0700)
committerJon Purdy <evincarofautumn@gmail.com>
Fri, 18 Nov 2016 21:52:27 +0000 (13:52 -0800)
commit658866d22a5320c1837592ad3b44ceeb57755773
treedc5ab2ba70cb26c8a94f6be844516a7c86454d5b
parent25842ac4c6e0308e23abbaf033411a0088d1ca5e
[sgen] Fix sgen_qsort.

sgen_qsort sometimes had pathological behavior due to a poor choice of
pivot. This implementation uses the median-of-three strategy, and limits
stack depth by avoiding recursive calls when possible.
mono/sgen/sgen-gc.h
mono/sgen/sgen-qsort.c
mono/sgen/sgen-qsort.h
mono/unit-tests/test-sgen-qsort.c