Bug: Basemap toolkit not 64-bit aware

Sorry if this is the wrong location for basemap toolkit bug reports. Please redirect me if that is the case.

Anyhow, I notice that in pyproj.pyx, the python function

PyAPI_FUNC(int) PyObject_AsWriteBuffer(PyObject *obj,
             void **buffer,
             Py_ssize_t *buffer_len);

is incorrectly referenced as
int PyObject_AsWriteBuffer(object, void **rbuf, int *len)

and chokes on 64-bit compiles. My workaround was to more-or-less switch from "int" to "long", but I'm sure there is a better solution.

Kevin Mueller
Dept Atmospheric Sciences, Univ. Illinois Urbana-Champaign

Kevin Mueller wrote:

Sorry if this is the wrong location for basemap toolkit bug reports. Please redirect me if that is the case.

Kevin: Here is fine.

Anyhow, I notice that in pyproj.pyx, the python function

PyAPI_FUNC(int) PyObject_AsWriteBuffer(PyObject *obj,
             void **buffer,
             Py_ssize_t *buffer_len);

is incorrectly referenced as
int PyObject_AsWriteBuffer(object, void **rbuf, int *len)

and chokes on 64-bit compiles. My workaround was to more-or-less switch from "int" to "long", but I'm sure there is a better solution.
  
The key thing here is not the first int, but the second. The declaration of len changed from int to Py_ssize_t in python 2.5. I've fixed this in SVN (revision 2823), could you grab an updated pyproj.c and see if that fixes it?

-Jeff

···

--
Jeffrey S. Whitaker Phone : (303)497-6313
Meteorologist FAX : (303)497-6449
NOAA/OAR/PSD R/PSD1 Email : Jeffrey.S.Whitaker@...236...
325 Broadway Office : Skaggs Research Cntr 1D-124
Boulder, CO, USA 80303-3328 Web : http://tinyurl.com/5telg