summaryrefslogtreecommitdiff
path: root/Cython/Utility/ModuleSetupCode.c
diff options
context:
space:
mode:
authorStefan Behnel <stefan_ml@behnel.de>2014-09-18 08:39:59 +0200
committerStefan Behnel <stefan_ml@behnel.de>2014-09-18 08:39:59 +0200
commite5e30b976714b633f76e7533e9de8a06571e70ec (patch)
tree7bb46d93e81f63de89d0b810fa5288773e700166 /Cython/Utility/ModuleSetupCode.c
parente6104531bfb4c8e3e0cd5a277fb363631e083dd8 (diff)
downloadcython-e5e30b976714b633f76e7533e9de8a06571e70ec.tar.gz
work around PyPy not supporting PySet_Size() in frozenset objects
Diffstat (limited to 'Cython/Utility/ModuleSetupCode.c')
-rw-r--r--Cython/Utility/ModuleSetupCode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/Cython/Utility/ModuleSetupCode.c b/Cython/Utility/ModuleSetupCode.c
index 6f6ffb554..a0741fde6 100644
--- a/Cython/Utility/ModuleSetupCode.c
+++ b/Cython/Utility/ModuleSetupCode.c
@@ -96,10 +96,13 @@
#if CYTHON_COMPILING_IN_PYPY
#define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b)
#define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b)
+ // PyPy doesn't handle frozenset() in PySet_Size()
+ #define __Pyx_PyFrozenSet_Size(s) PyObject_Size(s)
#else
#define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b)
#define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ? \
PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b))
+ #define __Pyx_PyFrozenSet_Size(s) PySet_Size(s)
#endif
#define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None)) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b))