Issue #18408: pmerge() help of mro_implementation() now raises MemoryError on

memory allocation failure

Replace also PyMem_Free() with PyMem_FREE() to be consistent with the rest of
the function.
This commit is contained in:
Victor Stinner 2013-07-12 00:42:14 +02:00
parent fb3a630001
commit a41f085144
1 changed files with 4 additions and 2 deletions

View File

@ -1456,8 +1456,10 @@ pmerge(PyObject *acc, PyObject* to_merge) {
that is not included in acc. that is not included in acc.
*/ */
remain = (int *)PyMem_MALLOC(SIZEOF_INT*to_merge_size); remain = (int *)PyMem_MALLOC(SIZEOF_INT*to_merge_size);
if (remain == NULL) if (remain == NULL) {
PyErr_NoMemory();
return -1; return -1;
}
for (i = 0; i < to_merge_size; i++) for (i = 0; i < to_merge_size; i++)
remain[i] = 0; remain[i] = 0;
@ -1489,7 +1491,7 @@ pmerge(PyObject *acc, PyObject* to_merge) {
} }
ok = PyList_Append(acc, candidate); ok = PyList_Append(acc, candidate);
if (ok < 0) { if (ok < 0) {
PyMem_Free(remain); PyMem_FREE(remain);
return -1; return -1;
} }
for (j = 0; j < to_merge_size; j++) { for (j = 0; j < to_merge_size; j++) {