From: Thomas Heller Date: Tue, 6 Jun 2006 18:50:46 +0000 (+0000) Subject: Add a hack so that foreign functions returning float now do work on 64-bit X-Git-Tag: v2.5b1~224 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d8714dedfa9bf45ce11330c006c9479b418136f9;p=python Add a hack so that foreign functions returning float now do work on 64-bit big endian platforms. --- diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index 8163f49c2b..31c5f1028a 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -964,7 +964,12 @@ PyObject *_CallProc(PPROC pProc, address cannot simply be used as result pointer, instead we must adjust the pointer value: */ - if (rtype->size < sizeof(ffi_arg)) + /* + XXX I should find out and clarify why this is needed at all, + especially why adjusting for ffi_type_float must be avoided on + 64-bit platforms. + */ + if (rtype->type != FFI_TYPE_FLOAT && rtype->size < sizeof(ffi_arg)) resbuf = (char *)resbuf + sizeof(ffi_arg) - rtype->size; #endif