[Python-Dev] PEP 3118: Extended buffer protocol (new version) (original) (raw)

Lisandro Dalcin dalcinl at gmail.com
Fri Apr 13 16:05:41 CEST 2007


On 4/13/07, Travis Oliphant <oliphant.travis at ieee.org> wrote:

>> int PyObjectGetContiguous(PyObject *obj, void **buf, Pyssizet >> *len, >> int fortran) >> >> Return a contiguous chunk of memory representing the buffer. If a >> copy is made then return 1. If no copy was needed return 0. > > 8) If a copy was made, What should consumers call to free memory?

You are right. We need a free function.

I think now the memory perhaps should be allocated with PyMem_New and deallocated with PyMem_Free.

Additionally, the return should perhaps indicate success or failure, and a new argument should be passed in order to know if a copy was made, something like

int PyObject_GetContiguous(PyObject *obj, void **buf, Py_ssize_t *len, int *copy, char layout)

-- Lisandro Dalcín

Centro Internacional de Métodos Computacionales en Ingeniería (CIMEC) Instituto de Desarrollo Tecnológico para la Industria Química (INTEC) Consejo Nacional de Investigaciones Científicas y Técnicas (CONICET) PTLC - Güemes 3450, (3000) Santa Fe, Argentina Tel/Fax: +54-(0)342-451.1594



More information about the Python-Dev mailing list