New submission from Stephane Poirier:
qsort doesn't sort arrays that are defined with double elements.
You can find attached a script that shows this function working well for int
(as described in the ctypes documentation). If int array is replaced by double
array qsort doesn't sort any more.
Changes by Serhiy Storchaka storch...@gmail.com:
--
nosy: +amaury.forgeotdarc, belopolsky, meador.inge
___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue16934
___
Mark Dickinson added the comment:
What happens if you replace the line:
CMPFUNC = CFUNCTYPE(c_double, POINTER(c_double), POINTER(c_double))
in your example code with
CMPFUNC = CFUNCTYPE(c_int, POINTER(c_double), POINTER(c_double))
?
--
nosy: +mark.dickinson
Mark Dickinson added the comment:
Closing as invalid: the issue is not in Python but with the CMPFUNC line.
Your py_cmp_func should return an integer rather than a float to be compatible
with libc.qsort.
--
resolution: - invalid
status: open - closed