patch 8.1.1414: alloc() returning "char_u *" causes a lot of type casts
Problem: Alloc() returning "char_u *" causes a lot of type casts.
Solution: Have it return "void *". (Mike Williams) Define ALLOC_ONE() to
check the simple allocations.
diff --git a/src/os_mswin.c b/src/os_mswin.c
index 6f3e708..869c9a0 100644
--- a/src/os_mswin.c
+++ b/src/os_mswin.c
@@ -1801,7 +1801,7 @@
goto fail;
size = sizeof(FILE_NAME_INFO_) + sizeof(WCHAR) * (MAX_PATH - 1);
- nameinfo = (FILE_NAME_INFO_*)alloc(size + sizeof(WCHAR));
+ nameinfo = alloc(size + sizeof(WCHAR));
if (nameinfo == NULL)
goto fail;
@@ -1835,7 +1835,7 @@
GetLastError() != ERROR_MORE_DATA)
goto fail;
- volnames = (WCHAR*)alloc(size * sizeof(WCHAR));
+ volnames = ALLOC_MULT(WCHAR, size);
if (!GetVolumePathNamesForVolumeNameW(buff, volnames, size,
&size))
goto fail;
@@ -3078,7 +3078,7 @@
if (ret == OK && printer_dc == NULL)
{
vim_free(lastlf);
- lastlf = (LOGFONTW *)alloc(sizeof(LOGFONTW));
+ lastlf = ALLOC_ONE(LOGFONTW);
if (lastlf != NULL)
mch_memmove(lastlf, lf, sizeof(LOGFONTW));
}