[Numpy-discussion] PyArray_FILLWBYTE dangerous doc

Frédéric Bastien nouiz@nouiz....
Thu Jun 28 21:28:43 CDT 2012


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