[Numpy-discussion] PyArray_Check problem.
Konrad Hinsen
hinsen at cnrs-orleans.fr
Thu Oct 19 13:25:24 EDT 2000
> fault and core dump. Frankly it's still mysterious, but at the moment
> the problem seems to be that I have passed in a list of tuples, rather
> than a list of PyArrayObjects. I don't expect this to work, but when I
> put a :
>
> site = PyList_GetItem(spam_list, index);
>
> if (! PyArray_Check(spam)) result = 0;
^^^^
Not "site"?
> I shouldn't get a crash!! (and it does crash at this line, as near as I
> can tell)
If spam is NULL, then the check will crash. If it is anything but a pointer
to a Python object, there's a good chance that it might crash.
PyArray_Check just tells you if a given Python object is of type "array".
A look at the value of "spam" with a debugger should tell you what's
going on.
> which goes away if I typecast it:
>
> spam = (PyArrayObject *) PyList_GetItem(spam_list, index);
>
> Should I be doing this, and should PyArray_Check(spam) work either way?
It works either way, but I am not sure that you are supposed to rely
on that. I prefer to use a cast to array objects only *after*
verifying that I have an array object, if only for clarity.
Konrad.
--
-------------------------------------------------------------------------------
Konrad Hinsen | E-Mail: hinsen at cnrs-orleans.fr
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-2.38.25.56.24
Rue Charles Sadron | Fax: +33-2.38.63.15.17
45071 Orleans Cedex 2 | Deutsch/Esperanto/English/
France | Nederlands/Francais
-------------------------------------------------------------------------------
More information about the NumPy-Discussion
mailing list