[Numpy-discussion] PyArray_FILLWBYTE dangerous doc

Frédéric Bastien nouiz@nouiz....
Fri Jul 6 09:30:45 CDT 2012


I just did a PR that update the doc to warn about this.



On Thu, Jun 28, 2012 at 10:28 PM, Frédéric Bastien <nouiz@nouiz.org> wrote:
> Hi,
> The doc of PyArray_FILLWBYTE here
> http://docs.scipy.org/doc/numpy/reference/c-api.array.html is this
> PyArray_FILLWBYTE(PyObject* obj, int val)
>     Fill the array pointed to by obj —which must be a (subclass of)
> bigndarray—with the contents of val (evaluated as a byte).
> In the code, what it does is call memset:
> numpy/core/include/numpy/ndarrayobject.h
> #define PyArray_FILLWBYTE(obj, val) memset(PyArray_DATA(obj), val, \
>                                            PyArray_NBYTES(obj))
> This make it ignore completely the strides!
> So the easy fix would be to update the doc, the real fix is to test
> the contiguity before calling memset, if not contiguous, call
> something else appropriate.
> Fred

More information about the NumPy-Discussion mailing list