diff -r 5619bc2d8207 Modules/main.c
--- a/Modules/main.c Fri Jun 14 19:02:34 2013 -0400
+++ b/Modules/main.c Sat Jun 15 02:14:58 2013 +0200
@@ -391,7 +391,7 @@ Py_Main(int argc, wchar_t **argv)
command to interpret. */
len = wcslen(_PyOS_optarg) + 1 + 1;
- command = (wchar_t *)malloc(sizeof(wchar_t) * len);
+ command = (wchar_t *)PyMem_RawMalloc(sizeof(wchar_t) * len);
if (command == NULL)
Py_FatalError(
"not enough memory to copy -c argument");
@@ -520,7 +520,7 @@ Py_Main(int argc, wchar_t **argv)
*wp != L'\0') {
wchar_t *buf, *warning;
- buf = (wchar_t *)malloc((wcslen(wp) + 1) * sizeof(wchar_t));
+ buf = (wchar_t *)PyMem_RawMalloc((wcslen(wp) + 1) * sizeof(wchar_t));
if (buf == NULL)
Py_FatalError(
"not enough memory to copy PYTHONWARNINGS");
@@ -530,7 +530,7 @@ Py_Main(int argc, wchar_t **argv)
warning = wcstok(NULL, L",")) {
PySys_AddWarnOption(warning);
}
- free(buf);
+ PyMem_RawFree(buf);
}
#else
if ((p = Py_GETENV("PYTHONWARNINGS")) && *p != '\0') {
@@ -539,7 +539,7 @@ Py_Main(int argc, wchar_t **argv)
/* settle for strtok here as there's no one standard
C89 wcstok */
- buf = (char *)malloc(strlen(p) + 1);
+ buf = (char *)PyMem_RawMalloc(strlen(p) + 1);
if (buf == NULL)
Py_FatalError(
"not enough memory to copy PYTHONWARNINGS");
@@ -563,7 +563,7 @@ Py_Main(int argc, wchar_t **argv)
}
setlocale(LC_ALL, oldloc);
free(oldloc);
- free(buf);
+ PyMem_RawFree(buf);
}
#endif
@@ -633,7 +633,7 @@ Py_Main(int argc, wchar_t **argv)
wchar_t* buffer;
size_t len = strlen(p) + 1;
- buffer = malloc(len * sizeof(wchar_t));
+ buffer = PyMem_RawMalloc(len * sizeof(wchar_t));
if (buffer == NULL) {
Py_FatalError(
"not enough memory to copy PYTHONEXECUTABLE");
@@ -707,7 +707,7 @@ Py_Main(int argc, wchar_t **argv)
if (command) {
sts = run_command(command, &cf);
- free(command);
+ PyMem_RawFree(command);
} else if (module) {
sts = (RunModule(module, 1) != 0);
}
diff -r 5619bc2d8207 Modules/python.c
--- a/Modules/python.c Fri Jun 14 19:02:34 2013 -0400
+++ b/Modules/python.c Sat Jun 15 02:14:58 2013 +0200
@@ -18,9 +18,9 @@ wmain(int argc, wchar_t **argv)
int
main(int argc, char **argv)
{
- wchar_t **argv_copy = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*(argc+1));
+ wchar_t **argv_copy = (wchar_t **)PyMem_RawMalloc(sizeof(wchar_t*)*(argc+1));
/* We need a second copies, as Python might modify the first one. */
- wchar_t **argv_copy2 = (wchar_t **)PyMem_Malloc(sizeof(wchar_t*)*(argc+1));
+ wchar_t **argv_copy2 = (wchar_t **)PyMem_RawMalloc(sizeof(wchar_t*)*(argc+1));
int i, res;
char *oldloc;
/* 754 requires that FP exceptions run in "no stop" mode by default,
@@ -57,10 +57,10 @@ main(int argc, char **argv)
free(oldloc);
res = Py_Main(argc, argv_copy);
for (i = 0; i < argc; i++) {
- PyMem_Free(argv_copy2[i]);
+ PyMem_RawFree(argv_copy2[i]);
}
- PyMem_Free(argv_copy);
- PyMem_Free(argv_copy2);
+ PyMem_RawFree(argv_copy);
+ PyMem_RawFree(argv_copy2);
return res;
}
#endif
diff -r 5619bc2d8207 Modules/getpath.c
--- a/Modules/getpath.c Fri Jun 14 19:02:34 2013 -0400
+++ b/Modules/getpath.c Sat Jun 15 02:15:12 2013 +0200
@@ -343,7 +343,7 @@ search_for_prefix(wchar_t *argv0_path, w
if (vpath != NULL) {
wcscpy(prefix, argv0_path);
joinpath(prefix, vpath);
- PyMem_Free(vpath);
+ PyMem_RawFree(vpath);
joinpath(prefix, L"Lib");
joinpath(prefix, LANDMARK);
if (ismodule(prefix))
@@ -554,8 +554,7 @@ calculate_path(void)
}
else
progpath[0] = '\0';
- if (path_buffer != NULL)
- PyMem_Free(path_buffer);
+ PyMem_RawFree(path_buffer);
if (progpath[0] != SEP && progpath[0] != '\0')
absolutize(progpath);
wcsncpy(argv0_path, progpath, MAXPATHLEN);
@@ -597,7 +596,7 @@ calculate_path(void)
/* Use the location of the library as the progpath */
wcsncpy(argv0_path, wbuf, MAXPATHLEN);
}
- PyMem_Free(wbuf);
+ PyMem_RawFree(wbuf);
}
#endif
@@ -808,11 +807,10 @@ calculate_path(void)
else
wcsncpy(exec_prefix, _exec_prefix, MAXPATHLEN);
- PyMem_Free(_pythonpath);
- PyMem_Free(_prefix);
- PyMem_Free(_exec_prefix);
- if (rtpypath != NULL)
- PyMem_Free(rtpypath);
+ PyMem_RawFree(_pythonpath);
+ PyMem_RawFree(_prefix);
+ PyMem_RawFree(_exec_prefix);
+ PyMem_RawFree(rtpypath);
}
@@ -822,7 +820,7 @@ Py_SetPath(const wchar_t *path)
{
if (module_search_path != NULL) {
if (module_search_path_malloced)
- PyMem_Free(module_search_path);
+ PyMem_RawFree(module_search_path);
module_search_path = NULL;
module_search_path_malloced = 0;
}
@@ -831,7 +829,7 @@ Py_SetPath(const wchar_t *path)
wchar_t *prog = Py_GetProgramName();
wcsncpy(progpath, prog, MAXPATHLEN);
exec_prefix[0] = prefix[0] = L'\0';
- module_search_path = PyMem_Malloc((wcslen(path) + 1) * sizeof(wchar_t));
+ module_search_path = PyMem_RawMalloc((wcslen(path) + 1) * sizeof(wchar_t));
module_search_path_malloced = 1;
if (module_search_path != NULL)
wcscpy(module_search_path, path);
diff -r 5619bc2d8207 PC/getpathp.c
--- a/PC/getpathp.c Fri Jun 14 19:02:34 2013 -0400
+++ b/PC/getpathp.c Sat Jun 15 02:15:29 2013 +0200
@@ -245,9 +245,9 @@ getpythonregpath(HKEY keyBase, int skipc
/* Tried to use sysget("winver") but here is too early :-( */
versionLen = strlen(PyWin_DLLVersionString);
/* Space for all the chars, plus one \0 */
- keyBuf = keyBufPtr = malloc(sizeof(keyPrefix) +
- sizeof(WCHAR)*(versionLen-1) +
- sizeof(keySuffix));
+ keyBuf = keyBufPtr = PyMem_RawMalloc(sizeof(keyPrefix) +
+ sizeof(WCHAR)*(versionLen-1) +
+ sizeof(keySuffix));
if (keyBuf==NULL) goto done;
memcpy(keyBufPtr, keyPrefix, sizeof(keyPrefix)-sizeof(WCHAR));
@@ -271,7 +271,7 @@ getpythonregpath(HKEY keyBase, int skipc
/* Allocate a temp array of char buffers, so we only need to loop
reading the registry once
*/
- ppPaths = malloc( sizeof(WCHAR *) * numKeys );
+ ppPaths = PyMem_RawMalloc( sizeof(WCHAR *) * numKeys );
if (ppPaths==NULL) goto done;
memset(ppPaths, 0, sizeof(WCHAR *) * numKeys);
/* Loop over all subkeys, allocating a temp sub-buffer. */
@@ -293,7 +293,7 @@ getpythonregpath(HKEY keyBase, int skipc
/* Find the value of the buffer size, malloc, then read it */
RegQueryValueExW(subKey, NULL, 0, NULL, NULL, &reqdSize);
if (reqdSize) {
- ppPaths[index] = malloc(reqdSize);
+ ppPaths[index] = PyMem_RawMalloc(reqdSize);
if (ppPaths[index]) {
RegQueryValueExW(subKey, NULL, 0, NULL,
(LPBYTE)ppPaths[index],
@@ -308,7 +308,7 @@ getpythonregpath(HKEY keyBase, int skipc
if (dataSize == 0) goto done;
/* original datasize from RegQueryInfo doesn't include the \0 */
- dataBuf = malloc((dataSize+1) * sizeof(WCHAR));
+ dataBuf = PyMem_RawMalloc((dataSize+1) * sizeof(WCHAR));
if (dataBuf) {
WCHAR *szCur = dataBuf;
DWORD reqdSize = dataSize;
@@ -347,13 +347,13 @@ done:
/* Loop freeing my temp buffers */
if (ppPaths) {
for(index=0;index