mirror of https://github.com/python/cpython
Issue #7084: Fix a (very unlikely) crash when printing a list from one
thread, and mutating it from another one. Patch by Scott Dial.
This commit is contained in:
parent
a4314c2b21
commit
beaf6a02f4
|
@ -175,6 +175,7 @@ Arnaud Delobelle
|
|||
Erik Demaine
|
||||
Roger Dev
|
||||
Raghuram Devarakonda
|
||||
Scott Dial
|
||||
Toby Dickenson
|
||||
Mark Dickinson
|
||||
Jack Diederich
|
||||
|
|
|
@ -12,6 +12,9 @@ What's New in Python 2.7 alpha 1
|
|||
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,
|
||||
|
|
|
@ -319,6 +319,7 @@ list_print(PyListObject *op, FILE *fp, int flags)
|
|||
{
|
||||
int rc;
|
||||
Py_ssize_t i;
|
||||
PyObject *item;
|
||||
|
||||
rc = Py_ReprEnter((PyObject*)op);
|
||||
if (rc != 0) {
|
||||
|
@ -333,15 +334,19 @@ list_print(PyListObject *op, FILE *fp, int flags)
|
|||
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, "]");
|
||||
|
|
Loading…
Reference in New Issue