[SciPy-dev] Three cheers for Travis!

Travis Oliphant oliphant.travis at ieee.org
Wed Nov 30 13:38:29 CST 2005


Ed Schofield wrote:

>I have another couple of 0-dim array bugs to report (as a reward :D)
>
> >>> b = array(2)
> >>> b.argmax()
>0
> >>> b.argmin()
>Segmentation fault
>
>  
>
Thanks.  There may be a few more like these lurking.

The problem is that in the C-code, whenever the generic object interface
is used (like PyNumber_Subtract in this case) an array-scalar may get 
returned.  

Then, if that returned value is handed off to a subroutine that expects 
an array (like PyArray_ArgMax in this case), boom the problem occurs.

obj = PyArray_EnsureArray(obj)

can always be used in this case to get an actual ndarray object (it 
steals the reference for obj and so can be used as a wrapper around the 
generic Python C-API command).

Trying-to-teach-everyone-to-fish,

-Travis





More information about the Scipy-dev mailing list