summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Misc/NEWS3
-rw-r--r--Objects/typeobject.c9
2 files changed, 12 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 72db759..7bdce71 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@ Release date: tba
Core and Builtins
-----------------
+- Issue #22995: [UPDATE] Comment out the one of the pickleability tests in
+ _PyObject_GetState() due to regressions observed in Cython-based projects.
+
- Issue #25961: Disallowed null characters in the type name.
- Issue #25973: Fix segfault when an invalid nonlocal statement binds a name
diff --git a/Objects/typeobject.c b/Objects/typeobject.c
index 2e68043..ff4ae11 100644
--- a/Objects/typeobject.c
+++ b/Objects/typeobject.c
@@ -3866,6 +3866,14 @@ _PyObject_GetState(PyObject *obj, int required)
}
assert(slotnames == Py_None || PyList_Check(slotnames));
+#if 0
+ /* 2016-01-11 barry - This clause breaks at least three packages which
+ rely on Cython: kivy, pysam, and s3ql. Cython may be doing
+ something funny under the hood, but as this is clearly a regression
+ and the rationale for this prohibition is suspect, I am commenting
+ this out. Perhaps it should just be removed. See issue #22995 for
+ details.
+ */
if (required) {
Py_ssize_t basicsize = PyBaseObject_Type.tp_basicsize;
if (obj->ob_type->tp_dictoffset)
@@ -3883,6 +3891,7 @@ _PyObject_GetState(PyObject *obj, int required)
return NULL;
}
}
+#endif
if (slotnames != Py_None && Py_SIZE(slotnames) > 0) {
PyObject *slots;