(original) (raw)
changeset: 99850:9d3ac16b78dc branch: 2.7 parent: 99825:84fdbdd483a3 user: Barry Warsaw barry@python.org date: Mon Jan 11 13:52:23 2016 -0500 files: Misc/NEWS Objects/typeobject.c description: Issue #22995: [UPDATE] Comment out the one of the pickleability tests in _PyObject_GetState() due to regressions observed in Cython-based projects. diff -r 84fdbdd483a3 -r 9d3ac16b78dc Misc/NEWS --- a/Misc/NEWS Sat Jan 09 23:55:47 2016 -0800 +++ b/Misc/NEWS Mon Jan 11 13:52:23 2016 -0500 @@ -10,6 +10,9 @@ 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 -r 84fdbdd483a3 -r 9d3ac16b78dc Objects/typeobject.c --- a/Objects/typeobject.c Sat Jan 09 23:55:47 2016 -0800 +++ b/Objects/typeobject.c Mon Jan 11 13:52:23 2016 -0500 @@ -3279,6 +3279,14 @@ 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 @@ goto end; } } +#endif if (names != Py_None) { slots = PyDict_New(); /barry@python.org