comparison src/os_win32.c @ 16825:ce04ebdf26b8 v8.1.1414

patch 8.1.1414: alloc() returning "char_u *" causes a lot of type casts commit https://github.com/vim/vim/commit/c799fe206e61f2e2c1231bc46cbe4bb354f3da69 Author: Bram Moolenaar <Bram@vim.org> Date: Tue May 28 23:08:19 2019 +0200 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.
author Bram Moolenaar <Bram@vim.org>
date Tue, 28 May 2019 23:15:10 +0200
parents fc58fee685e2
children d4ecdb8a4c58
comparison
equal deleted inserted replaced
16824:1f6bb29738d2 16825:ce04ebdf26b8
2073 p = enc_to_utf16((char_u *)name, NULL); 2073 p = enc_to_utf16((char_u *)name, NULL);
2074 if (p == NULL) 2074 if (p == NULL)
2075 return FALSE; 2075 return FALSE;
2076 2076
2077 wcurpath = _wgetenv(L"PATH"); 2077 wcurpath = _wgetenv(L"PATH");
2078 wnewpath = (WCHAR *)alloc((wcslen(wcurpath) + 3) * sizeof(WCHAR)); 2078 wnewpath = ALLOC_MULT(WCHAR, wcslen(wcurpath) + 3);
2079 if (wnewpath == NULL) 2079 if (wnewpath == NULL)
2080 return FALSE; 2080 return FALSE;
2081 wcscpy(wnewpath, L".;"); 2081 wcscpy(wnewpath, L".;");
2082 wcscat(wnewpath, wcurpath); 2082 wcscat(wnewpath, wcurpath);
2083 n = (long)SearchPathW(wnewpath, p, NULL, _MAX_PATH, fnamew, &dumw); 2083 n = (long)SearchPathW(wnewpath, p, NULL, _MAX_PATH, fnamew, &dumw);
2336 { 2336 {
2337 cb->BufferSize.X = cb->Info.dwSize.X; 2337 cb->BufferSize.X = cb->Info.dwSize.X;
2338 cb->BufferSize.Y = cb->Info.dwSize.Y; 2338 cb->BufferSize.Y = cb->Info.dwSize.Y;
2339 NumCells = cb->BufferSize.X * cb->BufferSize.Y; 2339 NumCells = cb->BufferSize.X * cb->BufferSize.Y;
2340 vim_free(cb->Buffer); 2340 vim_free(cb->Buffer);
2341 cb->Buffer = (PCHAR_INFO)alloc(NumCells * sizeof(CHAR_INFO)); 2341 cb->Buffer = ALLOC_MULT(CHAR_INFO, NumCells);
2342 if (cb->Buffer == NULL) 2342 if (cb->Buffer == NULL)
2343 return FALSE; 2343 return FALSE;
2344 } 2344 }
2345 2345
2346 /* 2346 /*
2360 numregions = (cb->Info.dwSize.Y + Y_incr - 1) / Y_incr; 2360 numregions = (cb->Info.dwSize.Y + Y_incr - 1) / Y_incr;
2361 if (cb->Regions == NULL || numregions != cb->NumRegions) 2361 if (cb->Regions == NULL || numregions != cb->NumRegions)
2362 { 2362 {
2363 cb->NumRegions = numregions; 2363 cb->NumRegions = numregions;
2364 vim_free(cb->Regions); 2364 vim_free(cb->Regions);
2365 cb->Regions = (PSMALL_RECT)alloc(cb->NumRegions * sizeof(SMALL_RECT)); 2365 cb->Regions = ALLOC_MULT(SMALL_RECT, cb->NumRegions);
2366 if (cb->Regions == NULL) 2366 if (cb->Regions == NULL)
2367 { 2367 {
2368 VIM_CLEAR(cb->Buffer); 2368 VIM_CLEAR(cb->Buffer);
2369 return FALSE; 2369 return FALSE;
2370 } 2370 }
3392 return (vim_acl_T)NULL; 3392 return (vim_acl_T)NULL;
3393 #else 3393 #else
3394 struct my_acl *p = NULL; 3394 struct my_acl *p = NULL;
3395 DWORD err; 3395 DWORD err;
3396 3396
3397 p = (struct my_acl *)alloc_clear(sizeof(struct my_acl)); 3397 p = ALLOC_CLEAR_ONE(struct my_acl);
3398 if (p != NULL) 3398 if (p != NULL)
3399 { 3399 {
3400 WCHAR *wn; 3400 WCHAR *wn;
3401 3401
3402 wn = enc_to_utf16(fname, NULL); 3402 wn = enc_to_utf16(fname, NULL);
5950 { 5950 {
5951 COORD coordOrigin = {0, 0}; 5951 COORD coordOrigin = {0, 0};
5952 WORD attrFlash = ~g_attrCurrent & 0xff; 5952 WORD attrFlash = ~g_attrCurrent & 0xff;
5953 5953
5954 DWORD dwDummy; 5954 DWORD dwDummy;
5955 LPWORD oldattrs = (LPWORD)alloc(Rows * Columns * sizeof(WORD)); 5955 LPWORD oldattrs = ALLOC_MULT(WORD, Rows * Columns);
5956 5956
5957 if (oldattrs == NULL) 5957 if (oldattrs == NULL)
5958 return; 5958 return;
5959 ReadConsoleOutputAttribute(g_hConOut, oldattrs, Rows * Columns, 5959 ReadConsoleOutputAttribute(g_hConOut, oldattrs, Rows * Columns,
5960 coordOrigin, &dwDummy); 5960 coordOrigin, &dwDummy);
6001 6001
6002 length = MultiByteToWideChar(cp, 0, (LPCSTR)pchBuf, cbToWrite, 0, 0); 6002 length = MultiByteToWideChar(cp, 0, (LPCSTR)pchBuf, cbToWrite, 0, 0);
6003 if (unicodebuf == NULL || length > unibuflen) 6003 if (unicodebuf == NULL || length > unibuflen)
6004 { 6004 {
6005 vim_free(unicodebuf); 6005 vim_free(unicodebuf);
6006 unicodebuf = (WCHAR *)lalloc(length * sizeof(WCHAR), FALSE); 6006 unicodebuf = LALLOC_MULT(WCHAR, length);
6007 unibuflen = length; 6007 unibuflen = length;
6008 } 6008 }
6009 MultiByteToWideChar(cp, 0, (LPCSTR)pchBuf, cbToWrite, 6009 MultiByteToWideChar(cp, 0, (LPCSTR)pchBuf, cbToWrite,
6010 unicodebuf, unibuflen); 6010 unicodebuf, unibuflen);
6011 6011
7115 || used_file_count == 0 7115 || used_file_count == 0
7116 || used_alist_count != GARGCOUNT) 7116 || used_alist_count != GARGCOUNT)
7117 return; 7117 return;
7118 7118
7119 /* Remember the buffer numbers for the arguments. */ 7119 /* Remember the buffer numbers for the arguments. */
7120 fnum_list = (int *)alloc(sizeof(int) * GARGCOUNT); 7120 fnum_list = ALLOC_MULT(int, GARGCOUNT);
7121 if (fnum_list == NULL) 7121 if (fnum_list == NULL)
7122 return; /* out of memory */ 7122 return; /* out of memory */
7123 for (i = 0; i < GARGCOUNT; ++i) 7123 for (i = 0; i < GARGCOUNT; ++i)
7124 fnum_list[i] = GARGLIST[i].ae_fnum; 7124 fnum_list[i] = GARGLIST[i].ae_fnum;
7125 7125