From: <sz...@us...> - 2011-11-05 03:35:09
|
Revision: 12835 http://swig.svn.sourceforge.net/swig/?rev=12835&view=rev Author: szager Date: 2011-11-05 03:35:03 +0000 (Sat, 05 Nov 2011) Log Message: ----------- bug 3429388: python unsigned integer handling on 32-bit architectures. Modified Paths: -------------- trunk/CHANGES.current trunk/Lib/python/pyhead.swg trunk/Lib/python/pyprimtypes.swg Modified: trunk/CHANGES.current =================================================================== --- trunk/CHANGES.current 2011-11-04 19:51:17 UTC (rev 12834) +++ trunk/CHANGES.current 2011-11-05 03:35:03 UTC (rev 12835) @@ -5,6 +5,9 @@ Version 2.0.5 (in progress) =========================== +2011-11-04: szager + [python] Bug 3429388: python unsigned integer handling on 32-bit architectures. + 2011-11-03: wsfulton Expand special variables in typemap warnings, eg: Modified: trunk/Lib/python/pyhead.swg =================================================================== --- trunk/Lib/python/pyhead.swg 2011-11-04 19:51:17 UTC (rev 12834) +++ trunk/Lib/python/pyhead.swg 2011-11-05 03:35:03 UTC (rev 12835) @@ -4,6 +4,7 @@ #define PyClass_Check(obj) PyObject_IsInstance(obj, (PyObject *)&PyType_Type) #define PyInt_Check(x) PyLong_Check(x) #define PyInt_AsLong(x) PyLong_AsLong(x) +#define PyInt_AsUnsignedLongMask(x) PyLong_AsUnsignedLongMask(x) #define PyInt_FromLong(x) PyLong_FromLong(x) #define PyString_Check(name) PyBytes_Check(name) #define PyString_FromString(x) PyUnicode_FromString(x) Modified: trunk/Lib/python/pyprimtypes.swg =================================================================== --- trunk/Lib/python/pyprimtypes.swg 2011-11-04 19:51:17 UTC (rev 12834) +++ trunk/Lib/python/pyprimtypes.swg 2011-11-05 03:35:03 UTC (rev 12835) @@ -100,13 +100,12 @@ SWIG_AsVal_dec(unsigned long)(PyObject *obj, unsigned long *val) { if (PyInt_Check(obj)) { - long v = PyInt_AsLong(obj); - if (v >= 0) { + unsigned long v = PyInt_AsUnsignedLongMask(obj); + if (!PyErr_Occurred()) { if (val) *val = v; return SWIG_OK; - } else { - return SWIG_OverflowError; } + PyErr_Clear(); } else if (PyLong_Check(obj)) { unsigned long v = PyLong_AsUnsignedLong(obj); if (!PyErr_Occurred()) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |