diff -r 5619bc2d8207 PC/winreg.c --- a/PC/winreg.c Fri Jun 14 19:02:34 2013 -0400 +++ b/PC/winreg.c Sat Jun 15 02:16:54 2013 +0200 @@ -938,7 +938,7 @@ Reg2Py(BYTE *retDataBuf, DWORD retDataSi wchar_t *data = (wchar_t *)retDataBuf; int len = retDataSize / 2; int s = countStrings(data, len); - wchar_t **str = (wchar_t **)malloc(sizeof(wchar_t *)*s); + wchar_t **str = (wchar_t **)PyMem_Malloc(sizeof(wchar_t *)*s); if (str == NULL) return PyErr_NoMemory(); @@ -959,7 +959,7 @@ Reg2Py(BYTE *retDataBuf, DWORD retDataSi index, PyUnicode_FromWideChar(str[index], len)); } - free(str); + PyMem_Free(str); break; } diff -r 5619bc2d8207 Modules/readline.c --- a/Modules/readline.c Fri Jun 14 19:02:34 2013 -0400 +++ Modules/readline.c Sat Jun 15 02:15:50 2013 +0200 @@ -84,12 +84,12 @@ parse_and_bind(PyObject *self, PyObject return NULL; /* Make a copy -- rl_parse_and_bind() modifies its argument */ /* Bernard Herzog */ - copy = malloc(1 + strlen(s)); + copy = PyMem_Malloc(1 + strlen(s)); if (copy == NULL) return PyErr_NoMemory(); strcpy(copy, s); rl_parse_and_bind(copy); - free(copy); /* Free the copy */ + PyMem_Free(copy); /* Free the copy */ Py_RETURN_NONE; } diff -r 5619bc2d8207 Modules/_curses_panel.c --- a/Modules/_curses_panel.c Fri Jun 14 19:02:34 2013 -0400 +++ b/Modules/_curses_panel.c Sat Jun 15 03:19:14 2013 +0200 @@ -117,7 +117,7 @@ insert_lop(PyCursesPanelObject *po) { list_of_panels *new; - if ((new = (list_of_panels *)malloc(sizeof(list_of_panels))) == NULL) { + if ((new = (list_of_panels *)PyMem_Malloc(sizeof(list_of_panels))) == NULL) { PyErr_NoMemory(); return -1; } @@ -136,7 +136,7 @@ remove_lop(PyCursesPanelObject *po) temp = lop; if (temp->po == po) { lop = temp->next; - free(temp); + PyMem_Free(temp); return; } while (temp->next == NULL || temp->next->po != po) { @@ -148,7 +148,7 @@ remove_lop(PyCursesPanelObject *po) temp = temp->next; } n = temp->next->next; - free(temp->next); + PyMem_Free(temp->next); temp->next = n; return; } diff -r 5619bc2d8207 Modules/_cursesmodule.c --- a/Modules/_cursesmodule.c Fri Jun 14 19:02:34 2013 -0400 +++ b/Modules/_cursesmodule.c Sat Jun 15 03:19:14 2013 +0200 @@ -3406,7 +3406,7 @@ PyInit__curses(void) continue; if (strncmp(key_n,"KEY_F(",6)==0) { char *p1, *p2; - key_n2 = malloc(strlen(key_n)+1); + key_n2 = PyMem_Malloc(strlen(key_n)+1); if (!key_n2) { PyErr_NoMemory(); break; @@ -3425,7 +3425,7 @@ PyInit__curses(void) key_n2 = key_n; SetDictInt(key_n2,key); if (key_n2 != key_n) - free(key_n2); + PyMem_Free(key_n2); } #endif SetDictInt("KEY_MIN", KEY_MIN); diff -r 5619bc2d8207 Modules/_lsprof.c --- a/Modules/_lsprof.c Fri Jun 14 19:02:34 2013 -0400 +++ b/Modules/_lsprof.c Sat Jun 15 03:19:14 2013 +0200 @@ -223,7 +223,7 @@ static ProfilerEntry* newProfilerEntry(ProfilerObject *pObj, void *key, PyObject *userObj) { ProfilerEntry *self; - self = (ProfilerEntry*) malloc(sizeof(ProfilerEntry)); + self = (ProfilerEntry*) PyMem_Malloc(sizeof(ProfilerEntry)); if (self == NULL) { pObj->flags |= POF_NOMEMORY; return NULL; @@ -231,7 +231,7 @@ newProfilerEntry(ProfilerObject *pObj, v userObj = normalizeUserObj(userObj); if (userObj == NULL) { PyErr_Clear(); - free(self); + PyMem_Free(self); pObj->flags |= POF_NOMEMORY; return NULL; } @@ -264,7 +264,7 @@ static ProfilerSubEntry * newSubEntry(ProfilerObject *pObj, ProfilerEntry *caller, ProfilerEntry* entry) { ProfilerSubEntry *self; - self = (ProfilerSubEntry*) malloc(sizeof(ProfilerSubEntry)); + self = (ProfilerSubEntry*) PyMem_Malloc(sizeof(ProfilerSubEntry)); if (self == NULL) { pObj->flags |= POF_NOMEMORY; return NULL; @@ -282,7 +282,7 @@ newSubEntry(ProfilerObject *pObj, Profi static int freeSubEntry(rotating_node_t *header, void *arg) { ProfilerSubEntry *subentry = (ProfilerSubEntry*) header; - free(subentry); + PyMem_Free(subentry); return 0; } @@ -291,7 +291,7 @@ static int freeEntry(rotating_node_t *he ProfilerEntry *entry = (ProfilerEntry*) header; RotatingTree_Enum(entry->calls, freeSubEntry, NULL); Py_DECREF(entry->userObj); - free(entry); + PyMem_Free(entry); return 0; } @@ -301,13 +301,13 @@ static void clearEntries(ProfilerObject pObj->profilerEntries = EMPTY_ROTATING_TREE; /* release the memory hold by the ProfilerContexts */ if (pObj->currentProfilerContext) { - free(pObj->currentProfilerContext); + PyMem_Free(pObj->currentProfilerContext); pObj->currentProfilerContext = NULL; } while (pObj->freelistProfilerContext) { ProfilerContext *c = pObj->freelistProfilerContext; pObj->freelistProfilerContext = c->previous; - free(c); + PyMem_Free(c); } pObj->freelistProfilerContext = NULL; } @@ -393,7 +393,7 @@ ptrace_enter_call(PyObject *self, void * else { /* free list exhausted, allocate a new one */ pContext = (ProfilerContext*) - malloc(sizeof(ProfilerContext)); + PyMem_Malloc(sizeof(ProfilerContext)); if (pContext == NULL) { pObj->flags |= POF_NOMEMORY; goto restorePyerr; @@ -712,7 +712,7 @@ flush_unmatched(ProfilerObject *pObj) else pObj->currentProfilerContext = pContext->previous; if (pContext) - free(pContext); + PyMem_Free(pContext); } } diff -r 5619bc2d8207 Modules/_ssl.c --- a/Modules/_ssl.c Fri Jun 14 19:02:34 2013 -0400 +++ b/Modules/_ssl.c Sat Jun 15 03:19:14 2013 +0200 @@ -2997,7 +2997,7 @@ static int _setup_ssl_threads(void) { if (_ssl_locks == NULL) { _ssl_locks_count = CRYPTO_num_locks(); _ssl_locks = (PyThread_type_lock *) - malloc(sizeof(PyThread_type_lock) * _ssl_locks_count); + PyMem_Malloc(sizeof(PyThread_type_lock) * _ssl_locks_count); if (_ssl_locks == NULL) return 0; memset(_ssl_locks, 0, @@ -3009,7 +3009,7 @@ static int _setup_ssl_threads(void) { for (j = 0; j < i; j++) { PyThread_free_lock(_ssl_locks[j]); } - free(_ssl_locks); + PyMem_free(_ssl_locks); return 0; } } diff -r 5619bc2d8207 Modules/audioop.c --- a/Modules/audioop.c Fri Jun 14 19:02:34 2013 -0400 +++ b/Modules/audioop.c Sat Jun 15 03:19:14 2013 +0200 @@ -1137,8 +1137,8 @@ audioop_ratecv(PyObject *self, PyObject "not enough memory for output buffer"); return 0; } - prev_i = (int *) malloc(nchannels * sizeof(int)); - cur_i = (int *) malloc(nchannels * sizeof(int)); + prev_i = (int *) PyMem_Malloc(nchannels * sizeof(int)); + cur_i = (int *) PyMem_Malloc(nchannels * sizeof(int)); if (prev_i == NULL || cur_i == NULL) { (void) PyErr_NoMemory(); goto exit; @@ -1258,9 +1258,9 @@ audioop_ratecv(PyObject *self, PyObject } exit: if (prev_i != NULL) - free(prev_i); + PyMem_Free(prev_i); if (cur_i != NULL) - free(cur_i); + PyMem_Free(cur_i); return rv; } diff -r 5619bc2d8207 Modules/posixmodule.c --- a/Modules/posixmodule.c Fri Jun 14 19:02:34 2013 -0400 +++ b/Modules/posixmodule.c Sat Jun 15 03:19:14 2013 +0200 @@ -1298,14 +1298,14 @@ win32_wchdir(LPCWSTR path) if (!result) return FALSE; if (result > MAX_PATH+1) { - new_path = malloc(result * sizeof(wchar_t)); + new_path = PyMem_RawMalloc(result * sizeof(wchar_t)); if (!new_path) { SetLastError(ERROR_OUTOFMEMORY); return FALSE; } result = GetCurrentDirectoryW(result, new_path); if (!result) { - free(new_path); + PyMem_RawFree(new_path); return FALSE; } } @@ -1316,7 +1316,7 @@ win32_wchdir(LPCWSTR path) env[1] = new_path[0]; result = SetEnvironmentVariableW(env, new_path); if (new_path != _new_path) - free(new_path); + PyMem_RawFree(new_path); return result; } #endif @@ -1497,7 +1497,7 @@ get_target_path(HANDLE hdl, wchar_t **ta if(!buf_size) return FALSE; - buf = (wchar_t *)malloc((buf_size+1)*sizeof(wchar_t)); + buf = (wchar_t *)PyMem_Malloc((buf_size+1)*sizeof(wchar_t)); if (!buf) { SetLastError(ERROR_OUTOFMEMORY); return FALSE; @@ -1507,12 +1507,12 @@ get_target_path(HANDLE hdl, wchar_t **ta buf, buf_size, VOLUME_NAME_DOS); if(!result_length) { - free(buf); + PyMem_Free(buf); return FALSE; } if(!CloseHandle(hdl)) { - free(buf); + PyMem_Free(buf); return FALSE; } @@ -1603,7 +1603,7 @@ win32_xstat_impl(const char *path, struc return -1; code = win32_xstat_impl_w(target_path, result, FALSE); - free(target_path); + PyMem_Free(target_path); return code; } } else @@ -1699,7 +1699,7 @@ win32_xstat_impl_w(const wchar_t *path, return -1; code = win32_xstat_impl_w(target_path, result, FALSE); - free(target_path); + PyMem_Free(target_path); return code; } } else @@ -3089,7 +3089,7 @@ posix_getcwd(int use_bytes) terminating \0. If the buffer is too small, len includes the space needed for the terminator. */ if (len >= sizeof wbuf/ sizeof wbuf[0]) { - wbuf2 = malloc(len * sizeof(wchar_t)); + wbuf2 = PyMem_RawMalloc(len * sizeof(wchar_t)); if (wbuf2) len = GetCurrentDirectoryW(len, wbuf2); } @@ -3100,12 +3100,12 @@ posix_getcwd(int use_bytes) } if (!len) { if (wbuf2 != wbuf) - free(wbuf2); + PyMem_RawFree(wbuf2); return PyErr_SetFromWindowsErr(0); } resobj = PyUnicode_FromWideChar(wbuf2, len); if (wbuf2 != wbuf) - free(wbuf2); + PyMem_RawFree(wbuf2); return resobj; } @@ -3289,7 +3289,7 @@ static PyObject * len = wcslen(path->wide); } /* The +5 is so we can append "\\*.*\0" */ - wnamebuf = malloc((len + 5) * sizeof(wchar_t)); + wnamebuf = PyMem_Malloc((len + 5) * sizeof(wchar_t)); if (!wnamebuf) { PyErr_NoMemory(); goto exit; @@ -3411,7 +3411,7 @@ exit: } } if (wnamebuf) - free(wnamebuf); + PyMem_free(wnamebuf); return list; } /* end of _listdir_windows_no_opendir */ @@ -3575,7 +3575,7 @@ posix__getfullpathname(PyObject *self, P Py_ARRAY_LENGTH(woutbuf), woutbuf, &wtemp); if (result > Py_ARRAY_LENGTH(woutbuf)) { - woutbufp = malloc(result * sizeof(wchar_t)); + woutbufp = PyMem_Malloc(result * sizeof(wchar_t)); if (!woutbufp) return PyErr_NoMemory(); result = GetFullPathNameW(wpath, result, woutbufp, &wtemp); @@ -3585,7 +3585,7 @@ posix__getfullpathname(PyObject *self, P else v = win32_error_object("GetFullPathNameW", po); if (woutbufp != woutbuf) - free(woutbufp); + PyMem_Free(woutbufp); return v; } /* Drop the argument parsing error as narrow strings @@ -3655,7 +3655,7 @@ posix__getfinalpathname(PyObject *self, if(!buf_size) return win32_error_object("GetFinalPathNameByHandle", po); - target_path = (wchar_t *)malloc((buf_size+1)*sizeof(wchar_t)); + target_path = (wchar_t *)PyMem_Malloc((buf_size+1)*sizeof(wchar_t)); if(!target_path) return PyErr_NoMemory(); @@ -3669,7 +3669,7 @@ posix__getfinalpathname(PyObject *self, target_path[result_length] = 0; result = PyUnicode_FromWideChar(target_path, result_length); - free(target_path); + PyMem_Free(target_path); return result; } /* end of posix__getfinalpathname */ diff -r 5619bc2d8207 Modules/pyexpat.c --- a/Modules/pyexpat.c Fri Jun 14 19:02:34 2013 -0400 +++ b/Modules/pyexpat.c Sat Jun 15 03:19:14 2013 +0200 @@ -997,7 +997,7 @@ xmlparse_ExternalEntityParserCreate(xmlp PyObject_GC_Track(new_parser); if (self->buffer != NULL) { - new_parser->buffer = malloc(new_parser->buffer_size); + new_parser->buffer = PyMem_Malloc(new_parser->buffer_size); if (new_parser->buffer == NULL) { Py_DECREF(new_parser); return PyErr_NoMemory(); @@ -1014,7 +1014,7 @@ xmlparse_ExternalEntityParserCreate(xmlp for (i = 0; handler_info[i].name != NULL; i++) /* do nothing */; - new_parser->handlers = malloc(sizeof(PyObject *) * i); + new_parser->handlers = PyMem_Malloc(sizeof(PyObject *) * i); if (!new_parser->handlers) { Py_DECREF(new_parser); return PyErr_NoMemory(); @@ -1204,7 +1204,7 @@ newxmlparseobject(char *encoding, char * for (i = 0; handler_info[i].name != NULL; i++) /* do nothing */; - self->handlers = malloc(sizeof(PyObject *) * i); + self->handlers = PyMem_Malloc(sizeof(PyObject *) * i); if (!self->handlers) { Py_DECREF(self); return PyErr_NoMemory(); @@ -1231,11 +1231,11 @@ xmlparse_dealloc(xmlparseobject *self) self->handlers[i] = NULL; Py_XDECREF(temp); } - free(self->handlers); + PyMem_Free(self->handlers); self->handlers = NULL; } if (self->buffer != NULL) { - free(self->buffer); + PyMem_Free(self->buffer); self->buffer = NULL; } Py_XDECREF(self->intern); @@ -1435,7 +1435,7 @@ xmlparse_setattro(xmlparseobject *self, return -1; if (b) { if (self->buffer == NULL) { - self->buffer = malloc(self->buffer_size); + self->buffer = PyMem_Malloc(self->buffer_size); if (self->buffer == NULL) { PyErr_NoMemory(); return -1; @@ -1446,7 +1446,7 @@ xmlparse_setattro(xmlparseobject *self, else if (self->buffer != NULL) { if (flush_character_buffer(self) < 0) return -1; - free(self->buffer); + PyMem_Free(self->buffer); self->buffer = NULL; } return 0; @@ -1506,9 +1506,9 @@ xmlparse_setattro(xmlparseobject *self, flush_character_buffer(self); } /* free existing buffer */ - free(self->buffer); + PyMem_Free(self->buffer); } - self->buffer = malloc(new_buffer_size); + self->buffer = PyMem_Malloc(new_buffer_size); if (self->buffer == NULL) { PyErr_NoMemory(); return -1; diff -r 5619bc2d8207 Modules/zlibmodule.c --- a/Modules/zlibmodule.c Fri Jun 14 19:02:34 2013 -0400 +++ b/Modules/zlibmodule.c Sat Jun 15 03:19:14 2013 +0200 @@ -165,7 +165,7 @@ PyZlib_compress(PyObject *self, PyObject zst.avail_out = length + length/1000 + 12 + 1; - output = (Byte*)malloc(zst.avail_out); + output = (Byte*)PyMem_Malloc(zst.avail_out); if (output == NULL) { PyErr_SetString(PyExc_MemoryError, "Can't allocate memory to compress data"); @@ -218,7 +218,7 @@ PyZlib_compress(PyObject *self, PyObject error: PyBuffer_Release(&pinput); - free(output); + PyMem_Free(output); return ReturnVal; }