From: Barry Warsaw Date: Mon, 11 Jan 2016 18:24:02 +0000 (-0500) Subject: Issue #22995: [UPDATE] Comment out the one of the pickleability tests in X-Git-Tag: v3.6.0a1~795^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=885e1939beb3ab95cc4e06d86815261256cd1d03;p=thirdparty%2FPython%2Fcpython.git Issue #22995: [UPDATE] Comment out the one of the pickleability tests in _PyObject_GetState() due to regressions observed in Cython-based projects. --- diff --git a/Misc/NEWS b/Misc/NEWS index 72db7599f8cb..7bdce713012c 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 2e680430532d..ff4ae1116408 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;