From: Barry Warsaw Date: Mon, 11 Jan 2016 18:52:23 +0000 (-0500) Subject: Issue #22995: [UPDATE] Comment out the one of the pickleability tests in X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f65395c8c27170e3ce7b161ec43cf9947bb7f5fe;p=python 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 e28bc87fd0..bda940f381 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -10,6 +10,9 @@ What's New in Python 2.7.12? 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 #22995: Instances of extension types with a state that aren't diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 8375f5fdad..1ddcc59d12 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -3279,6 +3279,14 @@ reduce_2(PyObject *obj) if (names == NULL) goto end; assert(names == Py_None || PyList_Check(names)); +#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_state) { Py_ssize_t basicsize = PyBaseObject_Type.tp_basicsize; if (obj->ob_type->tp_dictoffset) @@ -3294,6 +3302,7 @@ reduce_2(PyObject *obj) goto end; } } +#endif if (names != Py_None) { slots = PyDict_New();