Kaydet (Commit) bea47e76 authored tarafından Marc-André Lemburg's avatar Marc-André Lemburg

Vladimir MARANGOZOV <Vladimir.Marangozov@inrialpes.fr>:

This patch fixes an optimisation mystery in _PyUnicodeNew causing segfaults
on AIX when the interpreter is compiled with -O.
üst b248b7f8
......@@ -213,9 +213,8 @@ PyUnicodeObject *_PyUnicode_New(int length)
/* Unicode freelist & memory allocation */
if (unicode_freelist) {
unicode = unicode_freelist;
unicode_freelist = *(PyUnicodeObject **)unicode_freelist;
unicode_freelist = *(PyUnicodeObject **)unicode;
unicode_freelist_size--;
PyObject_INIT(unicode, &PyUnicode_Type);
if (unicode->str) {
/* Keep-Alive optimization: we only upsize the buffer,
never downsize it. */
......@@ -225,8 +224,10 @@ PyUnicodeObject *_PyUnicode_New(int length)
goto onError;
}
}
else
else {
unicode->str = PyMem_NEW(Py_UNICODE, length + 1);
}
PyObject_INIT(unicode, &PyUnicode_Type);
}
else {
unicode = PyObject_NEW(PyUnicodeObject, &PyUnicode_Type);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment