[PATCH] cmd: Avoid naming conflicts with the global HeapAlloc wrappers
Michael Stefaniuc
mstefani at winehq.org
Sun Nov 25 14:56:00 CST 2018
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
programs/cmd/batch.c | 4 ++--
programs/cmd/builtins.c | 24 ++++++++++++------------
programs/cmd/directory.c | 14 +++++++-------
programs/cmd/wcmd.h | 10 +++-------
programs/cmd/wcmdmain.c | 20 ++++++++++----------
5 files changed, 34 insertions(+), 38 deletions(-)
diff --git a/programs/cmd/batch.c b/programs/cmd/batch.c
index 5b05d8811b..3bb325537b 100644
--- a/programs/cmd/batch.c
+++ b/programs/cmd/batch.c
@@ -257,7 +257,7 @@ WCHAR *WCMD_fgets(WCHAR *buf, DWORD noChars, HANDLE h)
const char *p;
cp = GetConsoleCP();
- bufA = heap_alloc(noChars);
+ bufA = heap_xalloc(noChars);
/* Save current file position */
filepos.QuadPart = 0;
@@ -508,7 +508,7 @@ void WCMD_HandleTildaModifiers(WCHAR **start, BOOL atExecute)
size = GetEnvironmentVariableW(env, NULL, 0);
if (size > 0) {
- WCHAR *fullpath = heap_alloc(size * sizeof(WCHAR));
+ WCHAR *fullpath = heap_xalloc(size * sizeof(WCHAR));
if (!fullpath || (GetEnvironmentVariableW(env, fullpath, size) == 0) ||
(SearchPathW(fullpath, outputparam, NULL, MAX_PATH, outputparam, NULL) == 0))
size = 0;
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c
index 25b98813ba..209de26f10 100644
--- a/programs/cmd/builtins.c
+++ b/programs/cmd/builtins.c
@@ -720,7 +720,7 @@ void WCMD_copy(WCHAR * args) {
}
/* We have found something to process - build a COPY_FILE block to store it */
- thiscopy = heap_alloc(sizeof(COPY_FILES));
+ thiscopy = heap_xalloc(sizeof(COPY_FILES));
WINE_TRACE("Not a switch, but probably a filename/list %s\n", wine_dbgstr_w(thisparam));
thiscopy->concatenate = concatnextfilename;
@@ -731,7 +731,7 @@ void WCMD_copy(WCHAR * args) {
leave space to append \* to the end) , then copy in character by character. Strip off
quotes if we find them. */
len = strlenW(thisparam) + (sizeof(WCHAR) * 5); /* 5 spare characters, null + \*.* */
- thiscopy->name = heap_alloc(len*sizeof(WCHAR));
+ thiscopy->name = heap_xalloc(len*sizeof(WCHAR));
memset(thiscopy->name, 0x00, len);
pos1 = thisparam;
@@ -810,7 +810,7 @@ void WCMD_copy(WCHAR * args) {
strcpyW(destname, dotW);
strcatW(destname, slashW);
- destination = heap_alloc(sizeof(COPY_FILES));
+ destination = heap_xalloc(sizeof(COPY_FILES));
if (destination == NULL) goto exitreturn;
destination->concatenate = FALSE; /* Not used for destination */
destination->binarycopy = binarymode;
@@ -1390,7 +1390,7 @@ static BOOL WCMD_delete_one (const WCHAR *thisArg) {
WINE_TRACE("Recursive, Adding to search list '%s'\n", wine_dbgstr_w(subParm));
/* Allocate memory, add to list */
- nextDir = heap_alloc(sizeof(DIRECTORY_STACK));
+ nextDir = heap_xalloc(sizeof(DIRECTORY_STACK));
if (allDirs == NULL) allDirs = nextDir;
if (lastEntry != NULL) lastEntry->next = nextDir;
lastEntry = nextDir;
@@ -1476,7 +1476,7 @@ static WCHAR *WCMD_strtrim(const WCHAR *s)
const WCHAR *start = s;
WCHAR* result;
- result = heap_alloc((len + 1) * sizeof(WCHAR));
+ result = heap_xalloc((len + 1) * sizeof(WCHAR));
while (isspaceW(*start)) start++;
if (*start) {
@@ -1787,12 +1787,12 @@ static void WCMD_add_dirstowalk(DIRECTORY_STACK *dirsToWalk) {
(strcmpW(fd.cFileName, dotW) != 0))
{
/* Allocate memory, add to list */
- DIRECTORY_STACK *toWalk = heap_alloc(sizeof(DIRECTORY_STACK));
+ DIRECTORY_STACK *toWalk = heap_xalloc(sizeof(DIRECTORY_STACK));
WINE_TRACE("(%p->%p)\n", remainingDirs, remainingDirs->next);
toWalk->next = remainingDirs->next;
remainingDirs->next = toWalk;
remainingDirs = toWalk;
- toWalk->dirName = heap_alloc(sizeof(WCHAR) * (strlenW(dirsToWalk->dirName) + 2 + strlenW(fd.cFileName)));
+ toWalk->dirName = heap_xalloc(sizeof(WCHAR) * (strlenW(dirsToWalk->dirName) + 2 + strlenW(fd.cFileName)));
strcpyW(toWalk->dirName, dirsToWalk->dirName);
strcatW(toWalk->dirName, slashW);
strcatW(toWalk->dirName, fd.cFileName);
@@ -2228,7 +2228,7 @@ void WCMD_for (WCHAR *p, CMD_LIST **cmdList) {
/* Set up the list of directories to recurse if we are going to */
} else if (doRecurse) {
/* Allocate memory, add to list */
- dirsToWalk = heap_alloc(sizeof(DIRECTORY_STACK));
+ dirsToWalk = heap_xalloc(sizeof(DIRECTORY_STACK));
dirsToWalk->next = NULL;
dirsToWalk->dirName = heap_strdupW(optionsRoot);
WINE_TRACE("Starting with root directory %s\n", wine_dbgstr_w(dirsToWalk->dirName));
@@ -3673,7 +3673,7 @@ static int WCMD_getprecedence(const WCHAR in)
* stack
*/
static void WCMD_pushnumber(WCHAR *var, int num, VARSTACK **varstack) {
- VARSTACK *thisstack = heap_alloc(sizeof(VARSTACK));
+ VARSTACK *thisstack = heap_xalloc(sizeof(VARSTACK));
thisstack->isnum = (var == NULL);
if (var) {
thisstack->variable = var;
@@ -3736,7 +3736,7 @@ static int WCMD_popnumber(VARSTACK **varstack) {
* Push an operator onto the supplied stack
*/
static void WCMD_pushoperator(WCHAR op, int precedence, OPSTACK **opstack) {
- OPSTACK *thisstack = heap_alloc(sizeof(OPSTACK));
+ OPSTACK *thisstack = heap_xalloc(sizeof(OPSTACK));
thisstack->precedence = precedence;
thisstack->op = op;
thisstack->next = *opstack;
@@ -4206,7 +4206,7 @@ void WCMD_setshow_env (WCHAR *s) {
WCHAR *src,*dst;
/* Remove all quotes before doing any calculations */
- thisexpr = heap_alloc((strlenW(s+2)+1) * sizeof(WCHAR));
+ thisexpr = heap_xalloc((strlenW(s+2)+1) * sizeof(WCHAR));
src = s+2;
dst = thisexpr;
while (*src) {
@@ -4407,7 +4407,7 @@ void WCMD_start(WCHAR *args)
GetWindowsDirectoryW( file, MAX_PATH );
strcatW( file, exeW );
- cmdline = heap_alloc( (strlenW(file) + strlenW(args) + 8) * sizeof(WCHAR) );
+ cmdline = heap_xalloc( (strlenW(file) + strlenW(args) + 8) * sizeof(WCHAR) );
strcpyW( cmdline, file );
strcatW( cmdline, spaceW );
cmdline_params = cmdline + strlenW(cmdline);
diff --git a/programs/cmd/directory.c b/programs/cmd/directory.c
index 70507892ea..435e0f36ed 100644
--- a/programs/cmd/directory.c
+++ b/programs/cmd/directory.c
@@ -203,7 +203,7 @@ static void WCMD_getfileowner(WCHAR *filename, WCHAR *owner, int ownerlen) {
ULONG domainLen = MAXSTRING;
SID_NAME_USE nameuse;
- secBuffer = heap_alloc(sizeNeeded * sizeof(BYTE));
+ secBuffer = heap_xalloc(sizeNeeded * sizeof(BYTE));
/* Get the owners security descriptor */
if(!GetFileSecurityW(filename, OWNER_SECURITY_INFORMATION, secBuffer,
@@ -273,7 +273,7 @@ static DIRECTORY_STACK *WCMD_list_directory (DIRECTORY_STACK *inputparms, int le
same directory. Note issuing a directory header with no contents
mirrors what windows does */
parms = inputparms;
- fd = heap_alloc(sizeof(WIN32_FIND_DATAW));
+ fd = heap_xalloc(sizeof(WIN32_FIND_DATAW));
while (parms && strcmpW(inputparms->dirName, parms->dirName) == 0) {
concurrentDirs++;
@@ -510,7 +510,7 @@ static DIRECTORY_STACK *WCMD_list_directory (DIRECTORY_STACK *inputparms, int le
WINE_TRACE("Recursive, Adding to search list '%s'\n", wine_dbgstr_w(string));
/* Allocate memory, add to list */
- thisDir = heap_alloc(sizeof(DIRECTORY_STACK));
+ thisDir = heap_xalloc(sizeof(DIRECTORY_STACK));
if (dirStack == NULL) dirStack = thisDir;
if (lastEntry != NULL) lastEntry->next = thisDir;
lastEntry = thisDir;
@@ -841,7 +841,7 @@ void WCMD_directory (WCHAR *args)
}
WINE_TRACE("Using path '%s'\n", wine_dbgstr_w(path));
- thisEntry = heap_alloc(sizeof(DIRECTORY_STACK));
+ thisEntry = heap_xalloc(sizeof(DIRECTORY_STACK));
if (fullParms == NULL) fullParms = thisEntry;
if (prevEntry != NULL) prevEntry->next = thisEntry;
prevEntry = thisEntry;
@@ -853,11 +853,11 @@ void WCMD_directory (WCHAR *args)
wine_dbgstr_w(drive), wine_dbgstr_w(dir),
wine_dbgstr_w(fname), wine_dbgstr_w(ext));
- thisEntry->dirName = heap_alloc(sizeof(WCHAR) * (strlenW(drive)+strlenW(dir)+1));
+ thisEntry->dirName = heap_xalloc(sizeof(WCHAR) * (strlenW(drive)+strlenW(dir)+1));
strcpyW(thisEntry->dirName, drive);
strcatW(thisEntry->dirName, dir);
- thisEntry->fileName = heap_alloc(sizeof(WCHAR) * (strlenW(fname)+strlenW(ext)+1));
+ thisEntry->fileName = heap_xalloc(sizeof(WCHAR) * (strlenW(fname)+strlenW(ext)+1));
strcpyW(thisEntry->fileName, fname);
strcatW(thisEntry->fileName, ext);
@@ -867,7 +867,7 @@ void WCMD_directory (WCHAR *args)
/* If just 'dir' entered, a '*' parameter is assumed */
if (fullParms == NULL) {
WINE_TRACE("Inserting default '*'\n");
- fullParms = heap_alloc(sizeof(DIRECTORY_STACK));
+ fullParms = heap_xalloc(sizeof(DIRECTORY_STACK));
fullParms->next = NULL;
fullParms->dirName = heap_strdupW(cwd);
fullParms->fileName = heap_strdupW(starW);
diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h
index 8d6eb6b48e..359c719175 100644
--- a/programs/cmd/wcmd.h
+++ b/programs/cmd/wcmd.h
@@ -28,6 +28,7 @@
#include <stdarg.h>
#include <stdio.h>
#include <ctype.h>
+#include <wine/heap.h>
#include <wine/unicode.h>
/* msdn specified max for Win XP */
@@ -127,12 +128,7 @@ void WCMD_free_commands(CMD_LIST *cmds);
void WCMD_execute (const WCHAR *orig_command, const WCHAR *redirects,
CMD_LIST **cmdList, BOOL retrycall);
-void *heap_alloc(size_t);
-
-static inline BOOL heap_free(void *mem)
-{
- return HeapFree(GetProcessHeap(), 0, mem);
-}
+void *heap_xalloc(size_t);
static inline WCHAR *heap_strdupW(const WCHAR *str)
{
@@ -142,7 +138,7 @@ static inline WCHAR *heap_strdupW(const WCHAR *str)
size_t size;
size = (strlenW(str)+1)*sizeof(WCHAR);
- ret = heap_alloc(size);
+ ret = heap_xalloc(size);
memcpy(ret, str, size);
}
diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c
index 1c99661b44..637c0e94bd 100644
--- a/programs/cmd/wcmdmain.c
+++ b/programs/cmd/wcmdmain.c
@@ -75,7 +75,7 @@ static char *get_file_buffer(void)
{
static char *output_bufA = NULL;
if (!output_bufA)
- output_bufA = heap_alloc(MAX_WRITECONSOLE_SIZE);
+ output_bufA = heap_xalloc(MAX_WRITECONSOLE_SIZE);
return output_bufA;
}
@@ -438,11 +438,11 @@ static void WCMD_show_prompt (BOOL newLine) {
WCMD_output_asis (out_string);
}
-void *heap_alloc(size_t size)
+void *heap_xalloc(size_t size)
{
void *ret;
- ret = HeapAlloc(GetProcessHeap(), 0, size);
+ ret = heap_alloc(size);
if(!ret) {
ERR("Out of memory\n");
ExitProcess(1);
@@ -981,7 +981,7 @@ static void init_msvcrt_io_block(STARTUPINFOW* st)
* its new input & output handles)
*/
sz = max(sizeof(unsigned) + (sizeof(char) + sizeof(HANDLE)) * 3, st_p.cbReserved2);
- ptr = heap_alloc(sz);
+ ptr = heap_xalloc(sz);
flags = (char*)(ptr + sizeof(unsigned));
handles = (HANDLE*)(flags + num * sizeof(char));
@@ -1300,12 +1300,12 @@ void WCMD_execute (const WCHAR *command, const WCHAR *redirects,
wine_dbgstr_w(command), cmdList);
/* Move copy of the command onto the heap so it can be expanded */
- new_cmd = heap_alloc(MAXSTRING * sizeof(WCHAR));
+ new_cmd = heap_xalloc(MAXSTRING * sizeof(WCHAR));
strcpyW(new_cmd, command);
cmd = new_cmd;
/* Move copy of the redirects onto the heap so it can be expanded */
- new_redir = heap_alloc(MAXSTRING * sizeof(WCHAR));
+ new_redir = heap_xalloc(MAXSTRING * sizeof(WCHAR));
redir = new_redir;
/* Strip leading whitespaces, and a '@' if supplied */
@@ -1708,16 +1708,16 @@ static void WCMD_addCommand(WCHAR *command, int *commandLen,
CMD_LIST *thisEntry = NULL;
/* Allocate storage for command */
- thisEntry = heap_alloc(sizeof(CMD_LIST));
+ thisEntry = heap_xalloc(sizeof(CMD_LIST));
/* Copy in the command */
if (command) {
- thisEntry->command = heap_alloc((*commandLen+1) * sizeof(WCHAR));
+ thisEntry->command = heap_xalloc((*commandLen+1) * sizeof(WCHAR));
memcpy(thisEntry->command, command, *commandLen * sizeof(WCHAR));
thisEntry->command[*commandLen] = 0x00;
/* Copy in the redirects */
- thisEntry->redirects = heap_alloc((*redirLen+1) * sizeof(WCHAR));
+ thisEntry->redirects = heap_xalloc((*redirLen+1) * sizeof(WCHAR));
memcpy(thisEntry->redirects, redirs, *redirLen * sizeof(WCHAR));
thisEntry->redirects[*redirLen] = 0x00;
thisEntry->pipeFile[0] = 0x00;
@@ -1849,7 +1849,7 @@ WCHAR *WCMD_ReadAndParseLine(const WCHAR *optionalcmd, CMD_LIST **output, HANDLE
/* Allocate working space for a command read from keyboard, file etc */
if (!extraSpace)
- extraSpace = heap_alloc((MAXSTRING+1) * sizeof(WCHAR));
+ extraSpace = heap_xalloc((MAXSTRING+1) * sizeof(WCHAR));
if (!extraSpace)
{
WINE_ERR("Could not allocate memory for extraSpace\n");
--
2.14.5
More information about the wine-devel
mailing list