(original) (raw)

changeset: 99848:e79eddcdff63 branch: 3.5 parent: 99846:a6288fe5420f user: Barry Warsaw barry@python.org date: Mon Jan 11 13:24:02 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 a6288fe5420f -r e79eddcdff63 Misc/NEWS --- a/Misc/NEWS Mon Jan 11 12:30:56 2016 -0500 +++ b/Misc/NEWS Mon Jan 11 13:24:02 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 #25973: Fix segfault when an invalid nonlocal statement binds a name diff -r a6288fe5420f -r e79eddcdff63 Objects/typeobject.c --- a/Objects/typeobject.c Mon Jan 11 12:30:56 2016 -0500 +++ b/Objects/typeobject.c Mon Jan 11 13:24:02 2016 -0500 @@ -3866,6 +3866,14 @@ } 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 @@ return NULL; } } +#endif if (slotnames != Py_None && Py_SIZE(slotnames) > 0) { PyObject *slots; /barry@python.org