Module: wine Branch: master Commit: 93354bbd88e51fbaf97897fa653014b870f7e736 URL: https://gitlab.winehq.org/wine/wine/-/commit/93354bbd88e51fbaf97897fa653014b...
Author: Eric Pouech epouech@codeweavers.com Date: Mon Apr 22 09:51:17 2024 +0200
cmd: Introduce xrealloc helper.
Signed-off-by: Eric Pouech epouech@codeweavers.com
---
programs/cmd/directory.c | 8 +------- programs/cmd/wcmd.h | 7 ++++++- programs/cmd/wcmdmain.c | 6 +++--- 3 files changed, 10 insertions(+), 11 deletions(-)
diff --git a/programs/cmd/directory.c b/programs/cmd/directory.c index 709bbb52287..afec5f6ed75 100644 --- a/programs/cmd/directory.c +++ b/programs/cmd/directory.c @@ -271,13 +271,7 @@ static DIRECTORY_STACK *WCMD_list_directory (DIRECTORY_STACK *inputparms, int le if (tmpLen > widest) widest = tmpLen; }
- fd = realloc(fd, (entry_count + 1) * sizeof(WIN32_FIND_DATAW)); - if (fd == NULL) { - FindClose (hff); - WINE_ERR("Out of memory\n"); - errorlevel = 1; - return parms->next; - } + fd = xrealloc(fd, (entry_count + 1) * sizeof(WIN32_FIND_DATAW)); } while (FindNextFileW(hff, &fd[entry_count]) != 0); FindClose (hff); } diff --git a/programs/cmd/wcmd.h b/programs/cmd/wcmd.h index 1935bbcdcd2..72e5ef1ad36 100644 --- a/programs/cmd/wcmd.h +++ b/programs/cmd/wcmd.h @@ -124,7 +124,12 @@ void WCMD_free_commands(CMD_LIST *cmds); void WCMD_execute (const WCHAR *orig_command, const WCHAR *redirects, CMD_LIST **cmdList, BOOL retrycall);
-void *xalloc(size_t) __WINE_ALLOC_SIZE(1) __WINE_DEALLOC(free) __WINE_MALLOC; +void *xrealloc(void *, size_t) __WINE_ALLOC_SIZE(2) __WINE_DEALLOC(free) __WINE_MALLOC; + +static inline void *xalloc(size_t sz) +{ + return xrealloc(NULL, sz); +}
static inline WCHAR *xstrdupW(const WCHAR *str) { diff --git a/programs/cmd/wcmdmain.c b/programs/cmd/wcmdmain.c index 059920c9608..128610b0800 100644 --- a/programs/cmd/wcmdmain.c +++ b/programs/cmd/wcmdmain.c @@ -423,12 +423,12 @@ static void WCMD_show_prompt (BOOL newLine) { WCMD_output_asis (out_string); }
-void *xalloc(size_t size) +void *xrealloc(void *ptr, size_t size) { void *ret;
- ret = malloc(size); - if(!ret) { + if (!(ret = realloc(ptr, size))) + { ERR("Out of memory\n"); ExitProcess(1); }