On 11/02/2010 9:19 AM, bobicanprogram wrote:
I'm am having "strange" problems with the code snip below.
When this code is built on a 64bit Linux, it would appear to work
flawlessly. When the source is rebuilt on a 32bit Linux it begins
to crack in strange ways. The issue seems to be associated with the
sender field in the Py_BuildValue call. The fact that sender is a
pointer should mean that its value is an unsigned integer. However,
on the 32 bit build the failure is that the msgPtr->data value is
"messed up". If the format associated with the sender (a pointer)
from "L" to "i" things work on the 32 bit side but break on the 64 bit
side.
I expect that in a 32bit build of linux, a "long long" (the 'L' format)
is still 64 bits. You probably want something like:
Py_BuildValue("iNz#", ret, PyLong_FromVoidPtr(sender), &msgPtr->data, ret);
and PyLong_AsVoidPtr() for the other direction.
HTH,
Mark
--
http://mail.python.org/mailman/listinfo/python-list