thread, and mutating it from another one. Patch by Scott Dial.
Erik Demaine
Roger Dev
Raghuram Devarakonda
+Scott Dial
Toby Dickenson
Mark Dickinson
Jack Diederich
Core and Builtins
-----------------
+- Issue #7084: Fix a (very unlikely) crash when printing a list from one
+ thread, and mutating it from another one. Patch by Scott Dial.
+
- Issue #1571184: The Unicode database contains properties for more characters.
The tables for code points representing numeric values, white spaces or line
breaks are now generated from the official Unicode Character Database files,
{
int rc;
Py_ssize_t i;
+ PyObject *item;
rc = Py_ReprEnter((PyObject*)op);
if (rc != 0) {
fprintf(fp, "[");
Py_END_ALLOW_THREADS
for (i = 0; i < Py_SIZE(op); i++) {
+ item = op->ob_item[i];
+ Py_INCREF(item);
if (i > 0) {
Py_BEGIN_ALLOW_THREADS
fprintf(fp, ", ");
Py_END_ALLOW_THREADS
}
- if (PyObject_Print(op->ob_item[i], fp, 0) != 0) {
+ if (PyObject_Print(item, fp, 0) != 0) {
+ Py_DECREF(item);
Py_ReprLeave((PyObject *)op);
return -1;
}
+ Py_DECREF(item);
}
Py_BEGIN_ALLOW_THREADS
fprintf(fp, "]");