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.
This commit is contained in:
Marc-André Lemburg 2000-06-17 20:31:17 +00:00
parent b248b7f848
commit bea47e768d
1 changed files with 4 additions and 3 deletions

View File

@ -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);