[Python-Dev] A cast from Py_ssize_t to long (original) (raw)

Alexander Belopolsky alexander.belopolsky at gmail.com
Mon Aug 21 16:08:02 CEST 2006


On 8/21/06, Thomas Wouters <thomas at python.org> wrote: [snip]

> Is this a bug? [snap] Yes. Pyssizet can be bigger than a long (on LLP64 systems, such as Win64).

Here is a similar problem: typedef struct { ... size_t pos; ... } mmap_object; ... mmap_tell_method(mmap_object *self, PyObject *unused) { CHECK_VALID(NULL); return PyInt_FromLong((long) self->pos); }

See Modules/mmapmodule.c .

Here a cast to ssize_t would, technically speaking, not be safe either, but it may be worth using ssize_t anyways.

Is there a simple automated way to detect situations like this? Maybe there is a win64 compiler that would generate a warning.



More information about the Python-Dev mailing list