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:
parent
b248b7f848
commit
bea47e768d
|
@ -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,9 +224,11 @@ 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);
|
||||
if (unicode == NULL)
|
||||
|
|
Loading…
Reference in New Issue