[Numpy-discussion] PyArray_FILLWBYTE dangerous doc

Frédéric Bastien nouiz at nouiz.org
Thu Jun 28 22:28:43 EDT 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