[Numpy-discussion] PyArray_FILLWBYTE dangerous doc

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


Hi,

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

https://github.com/numpy/numpy/pull/332

Fred

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