diff options
-rw-r--r-- | pyuno/source/module/pyuno.cxx | 5 | ||||
-rw-r--r-- | pyuno/source/module/pyuno_impl.hxx | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/pyuno/source/module/pyuno.cxx b/pyuno/source/module/pyuno.cxx index 75f3507d31b1..1f11f3db78a8 100644 --- a/pyuno/source/module/pyuno.cxx +++ b/pyuno/source/module/pyuno.cxx @@ -325,9 +325,14 @@ sal_Int32 lcl_PyNumber_AsSal_Int32( PyObject *pObj ) // Convert Python number to platform long, then check actual value against // bounds of sal_Int32 +#if PY_VERSION_HEX >= 0x02070000 int nOverflow; long nResult = PyLong_AsLongAndOverflow( pObj, &nOverflow ); if ( nOverflow || nResult > SAL_MAX_INT32 || nResult < SAL_MIN_INT32) { +#else + long nResult = PyLong_AsLong( pObj ); + if ( nResult > SAL_MAX_INT32 || nResult < SAL_MIN_INT32) { +#endif PyErr_SetString( PyExc_IndexError, "Python int too large to convert to UNO long" ); return -1; } diff --git a/pyuno/source/module/pyuno_impl.hxx b/pyuno/source/module/pyuno_impl.hxx index c5d8190989cf..39a0952361d9 100644 --- a/pyuno/source/module/pyuno_impl.hxx +++ b/pyuno/source/module/pyuno_impl.hxx @@ -26,6 +26,10 @@ #include <Python.h> +#if PY_VERSION_HEX < 0x02070000 +typedef long Py_hash_t; +#endif + //Must define PyVarObject_HEAD_INIT for Python 2.5 or older #ifndef PyVarObject_HEAD_INIT #define PyVarObject_HEAD_INIT(type, size) PyObject_HEAD_INIT(type) size, |