summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLisandro Dalcin <dalcinl@gmail.com>2015-03-18 13:31:53 +0300
committerLisandro Dalcin <dalcinl@gmail.com>2015-03-18 13:31:53 +0300
commitacd4698873a14529a29a7b464d7091ccbde245d5 (patch)
tree9c296cec93976e050945cd7c08fb5dcf954ef460
parent8573e7898a27ef607a3264909cc3bf24d4e13959 (diff)
downloadcython-acd4698873a14529a29a7b464d7091ccbde245d5.tar.gz
CPython: Restore usage of Py_SIZE to check sign of PyLong
-rw-r--r--Cython/Utility/TypeConversion.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/Cython/Utility/TypeConversion.c b/Cython/Utility/TypeConversion.c
index 8155a2421..af469a173 100644
--- a/Cython/Utility/TypeConversion.c
+++ b/Cython/Utility/TypeConversion.c
@@ -502,7 +502,7 @@ static CYTHON_INLINE PyObject* {{TO_PY_FUNCTION}}({{TYPE}} value) {
func_type value = func_value; \
if (sizeof(target_type) < sizeof(func_type)) { \
if (unlikely(value != (func_type) (target_type) value)) { \
- func_type zero = 0; \
+ const func_type zero = 0; \
if (is_unsigned && unlikely(value < zero)) \
goto raise_neg_overflow; \
else \
@@ -554,10 +554,12 @@ static CYTHON_INLINE {{TYPE}} {{FROM_PY_FUNCTION}}(PyObject *x) {
case 0: return 0;
case 1: __PYX_VERIFY_RETURN_INT({{TYPE}}, digit, ((PyLongObject*)x)->ob_digit[0]);
}
+ #endif
+#endif
+#if CYTHON_COMPILING_IN_CPYTHON
if (unlikely(Py_SIZE(x) < 0)) {
goto raise_neg_overflow;
}
- #endif
#endif
if (sizeof({{TYPE}}) <= sizeof(unsigned long)) {
__PYX_VERIFY_RETURN_INT({{TYPE}}, unsigned long, PyLong_AsUnsignedLong(x))