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/winclip.c b/src/winclip.c
index f6f24d1..9b7f3f6 100644
--- a/src/winclip.c
+++ b/src/winclip.c
@@ -149,7 +149,7 @@
{
*outlen = MultiByteToWideChar(cp, flags, in, inlen, 0, 0);
/* Add one one word to avoid a zero-length alloc(). */
- *out = (LPWSTR)alloc(sizeof(WCHAR) * (*outlen + 1));
+ *out = ALLOC_MULT(WCHAR, *outlen + 1);
if (*out != NULL)
{
MultiByteToWideChar(cp, flags, in, inlen, *out, *outlen);
@@ -169,7 +169,7 @@
{
*outlen = WideCharToMultiByte(cp, flags, in, inlen, NULL, 0, def, useddef);
/* Add one one byte to avoid a zero-length alloc(). */
- *out = (LPSTR)alloc(*outlen + 1);
+ *out = alloc(*outlen + 1);
if (*out != NULL)
{
WideCharToMultiByte(cp, flags, in, inlen, *out, *outlen, def, useddef);
@@ -512,7 +512,7 @@
metadata.txtlen = WideCharToMultiByte(GetACP(), 0, out, len,
NULL, 0, 0, 0);
vim_free(str);
- str = (char_u *)alloc(metadata.txtlen == 0 ? 1 : metadata.txtlen);
+ str = alloc(metadata.txtlen == 0 ? 1 : metadata.txtlen);
if (str == NULL)
{
vim_free(out);
@@ -654,7 +654,7 @@
convert_setup(&conv, NULL, NULL);
length = utf8_to_utf16(str, *lenp, NULL, NULL);
- ret = (WCHAR *)alloc((length + 1) * sizeof(WCHAR));
+ ret = ALLOC_MULT(WCHAR, length + 1);
if (ret != NULL)
{
utf8_to_utf16(str, *lenp, (short_u *)ret, NULL);