From: Andrew Eikum Subject: Re: [PATCH] winmm: Use the ARRAY_SIZE() macro Message-Id: <20180920135108.klee3euwlxfgizu4@foghorn.codeweavers.com> Date: Thu, 20 Sep 2018 08:51:08 -0500 In-Reply-To: <20180919190111.6034-2-mstefani@winehq.org> References: <20180919190111.6034-2-mstefani@winehq.org> Signed-off-by: Andrew Eikum On Wed, Sep 19, 2018 at 09:01:11PM +0200, Michael Stefaniuc wrote: > Signed-off-by: Michael Stefaniuc > --- > dlls/winmm/driver.c | 2 +- > dlls/winmm/lolvldrv.c | 10 +++++----- > dlls/winmm/mci.c | 20 +++++++++----------- > dlls/winmm/mmio.c | 2 +- > dlls/winmm/playsound.c | 10 +++++----- > dlls/winmm/waveform.c | 2 +- > dlls/winmm/winmm.c | 3 +-- > 7 files changed, 23 insertions(+), 26 deletions(-) > > diff --git a/dlls/winmm/driver.c b/dlls/winmm/driver.c > index feecc92122..0117c60496 100644 > --- a/dlls/winmm/driver.c > +++ b/dlls/winmm/driver.c > @@ -396,7 +396,7 @@ HDRVR WINAPI OpenDriver(LPCWSTR lpDriverName, LPCWSTR lpSectionName, LPARAM lPar > > if (lsn == NULL) { > static const WCHAR wszDrivers32[] = {'D','r','i','v','e','r','s','3','2',0}; > - lstrcpynW(libName, lpDriverName, sizeof(libName) / sizeof(WCHAR)); > + lstrcpynW(libName, lpDriverName, ARRAY_SIZE(libName)); > > if ((lpDrv = DRIVER_TryOpenDriver32(libName, lParam))) > goto the_end; > diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c > index 35bd6a0b5f..95f454f31d 100644 > --- a/dlls/winmm/lolvldrv.c > +++ b/dlls/winmm/lolvldrv.c > @@ -181,7 +181,7 @@ void MMDRV_Free(HANDLE hndl, LPWINE_MLD mld) > > if ((UINT_PTR)hndl & 0x8000) { > UINT_PTR idx = (UINT_PTR)hndl & ~0x8000; > - if (idx < sizeof(MM_MLDrvs) / sizeof(MM_MLDrvs[0])) { > + if (idx < ARRAY_SIZE(MM_MLDrvs)) { > MM_MLDrvs[idx] = NULL; > HeapFree(GetProcessHeap(), 0, mld); > return; > @@ -261,7 +261,7 @@ LPWINE_MLD MMDRV_Get(HANDLE _hndl, UINT type, BOOL bCanBeID) > hndl != (UINT16)-1 && hndl != (UINT)-1) { > if (hndl & 0x8000) { > UINT idx = hndl & ~0x8000; > - if (idx < sizeof(MM_MLDrvs) / sizeof(MM_MLDrvs[0])) { > + if (idx < ARRAY_SIZE(MM_MLDrvs)) { > __TRY > { > mld = MM_MLDrvs[idx]; > @@ -424,7 +424,7 @@ static BOOL MMDRV_Install(LPCSTR drvRegName, LPCSTR drvFileName, BOOL bIsMapper) > * drivers !! > * If not just increase size of MMDrvs > */ > - assert(MMDrvsHi <= sizeof(MMDrvs)/sizeof(MMDrvs[0])); > + assert(MMDrvsHi <= ARRAY_SIZE(MMDrvs)); > > memset(lpDrv, 0, sizeof(*lpDrv)); > > @@ -589,7 +589,7 @@ void MMDRV_Exit(void) > unsigned int i; > TRACE("()\n"); > > - for (i = 0; i < sizeof(MM_MLDrvs) / sizeof(MM_MLDrvs[0]); i++) > + for (i = 0; i < ARRAY_SIZE(MM_MLDrvs); i++) > { > if (MM_MLDrvs[i] != NULL) > { > @@ -602,7 +602,7 @@ void MMDRV_Exit(void) > } > > /* unload driver, in reverse order of loading */ > - i = sizeof(MMDrvs) / sizeof(MMDrvs[0]); > + i = ARRAY_SIZE(MMDrvs); > while (i-- > 0) > { > MMDRV_ExitPerType(&MMDrvs[i], MMDRV_AUX); > diff --git a/dlls/winmm/mci.c b/dlls/winmm/mci.c > index 56a537d79c..0319a0b16c 100644 > --- a/dlls/winmm/mci.c > +++ b/dlls/winmm/mci.c > @@ -551,7 +551,7 @@ static UINT MCI_GetDevTypeFromResource(LPCWSTR lpstrName) > WCHAR buf[32]; > UINT uDevType; > for (uDevType = MCI_DEVTYPE_FIRST; uDevType <= MCI_DEVTYPE_LAST; uDevType++) { > - if (LoadStringW(hWinMM32Instance, uDevType, buf, sizeof(buf) / sizeof(WCHAR))) { > + if (LoadStringW(hWinMM32Instance, uDevType, buf, ARRAY_SIZE(buf))) { > /* FIXME: ignore digits suffix */ > if (!strcmpiW(buf, lpstrName)) > return uDevType; > @@ -668,7 +668,7 @@ static UINT MCI_GetCommandTable(UINT uDevType) > > /* well try to load id */ > if (uDevType >= MCI_DEVTYPE_FIRST && uDevType <= MCI_DEVTYPE_LAST) { > - if (LoadStringW(hWinMM32Instance, uDevType, buf, sizeof(buf) / sizeof(WCHAR))) { > + if (LoadStringW(hWinMM32Instance, uDevType, buf, ARRAY_SIZE(buf))) { > str = buf; > } > } else if (uDevType == 0) { > @@ -1450,9 +1450,9 @@ DWORD WINAPI mciSendStringW(LPCWSTR lpstrCommand, LPWSTR lpstrRet, > { > static const WCHAR wszOpenWait[] = {'o','p','e','n',' ','%','s',' ','w','a','i','t',0}; > WCHAR buf[138], retbuf[6]; > - snprintfW(buf, sizeof(buf)/sizeof(WCHAR), wszOpenWait, dev); > + snprintfW(buf, ARRAY_SIZE(buf), wszOpenWait, dev); > /* open via mciSendString handles quoting, dev!file syntax and alias creation */ > - if ((dwRet = mciSendStringW(buf, retbuf, sizeof(retbuf)/sizeof(WCHAR), 0)) != 0) > + if ((dwRet = mciSendStringW(buf, retbuf, ARRAY_SIZE(retbuf), 0)) != 0) > goto errCleanUp; > auto_open = strtoulW(retbuf, NULL, 10); > TRACE("auto-opened %u for %s\n", auto_open, debugstr_w(dev)); > @@ -1746,10 +1746,8 @@ static DWORD MCI_Open(DWORD dwParam, LPMCI_OPEN_PARMSW lpParms) > if (dwParam & MCI_OPEN_TYPE_ID) { > WORD uDevType = LOWORD(lpParms->lpstrDeviceType); > > - if (uDevType < MCI_DEVTYPE_FIRST || > - uDevType > MCI_DEVTYPE_LAST || > - !LoadStringW(hWinMM32Instance, uDevType, > - strDevTyp, sizeof(strDevTyp) / sizeof(WCHAR))) { > + if (uDevType < MCI_DEVTYPE_FIRST || uDevType > MCI_DEVTYPE_LAST || > + !LoadStringW(hWinMM32Instance, uDevType, strDevTyp, ARRAY_SIZE(strDevTyp))) { > dwRet = MCIERR_BAD_INTEGER; > goto errCleanUp; > } > @@ -1946,7 +1944,7 @@ static DWORD MCI_SysInfo(UINT uDevID, DWORD dwFlags, LPMCI_SYSINFO_PARMSW lpParm > RegQueryInfoKeyW( hKey, 0, 0, 0, &cnt, 0, 0, 0, 0, 0, 0, 0); > RegCloseKey( hKey ); > } > - if (GetPrivateProfileStringW(wszMci, 0, wszNull, buf, sizeof(buf) / sizeof(buf[0]), wszSystemIni)) > + if (GetPrivateProfileStringW(wszMci, 0, wszNull, buf, ARRAY_SIZE(buf), wszSystemIni)) > for (s = buf; *s; s += strlenW(s) + 1) cnt++; > } > } else { > @@ -2016,7 +2014,7 @@ static DWORD MCI_SysInfo(UINT uDevID, DWORD dwFlags, LPMCI_SYSINFO_PARMSW lpParm > if (RegQueryInfoKeyW( hKey, 0, 0, 0, &cnt, > 0, 0, 0, 0, 0, 0, 0) == ERROR_SUCCESS && > lpParms->dwNumber <= cnt) { > - DWORD bufLen = sizeof(buf)/sizeof(buf[0]); > + DWORD bufLen = ARRAY_SIZE(buf); > if (RegEnumKeyExW(hKey, lpParms->dwNumber - 1, > buf, &bufLen, 0, 0, 0, 0) == ERROR_SUCCESS) > s = buf; > @@ -2024,7 +2022,7 @@ static DWORD MCI_SysInfo(UINT uDevID, DWORD dwFlags, LPMCI_SYSINFO_PARMSW lpParm > RegCloseKey( hKey ); > } > if (!s) { > - if (GetPrivateProfileStringW(wszMci, 0, wszNull, buf, sizeof(buf) / sizeof(buf[0]), wszSystemIni)) { > + if (GetPrivateProfileStringW(wszMci, 0, wszNull, buf, ARRAY_SIZE(buf), wszSystemIni)) { > for (p = buf; *p; p += strlenW(p) + 1, cnt++) { > TRACE("%d: %s\n", cnt, debugstr_w(p)); > if (cnt == lpParms->dwNumber - 1) { > diff --git a/dlls/winmm/mmio.c b/dlls/winmm/mmio.c > index d8af7874f3..b4155b6f51 100644 > --- a/dlls/winmm/mmio.c > +++ b/dlls/winmm/mmio.c > @@ -315,7 +315,7 @@ static LPMMIOPROC MMIO_InstallIOProc(FOURCC fccIOProc, LPMMIOPROC pIOProc, > } > /* remove it, but only if it isn't builtin */ > if ((*ppListNode) >= defaultProcs && > - (*ppListNode) < defaultProcs + sizeof(defaultProcs) / sizeof(defaultProcs[0])) { > + (*ppListNode) < defaultProcs + ARRAY_SIZE(defaultProcs)) { > WARN("Tried to remove built-in mmio proc. Skipping\n"); > } else { > /* Okay, nuke it */ > diff --git a/dlls/winmm/playsound.c b/dlls/winmm/playsound.c > index 6525db5c19..2731e7b935 100644 > --- a/dlls/winmm/playsound.c > +++ b/dlls/winmm/playsound.c > @@ -60,7 +60,7 @@ static HMMIO get_mmioFromFile(LPCWSTR lpszName) > ret = mmioOpenW((LPWSTR)lpszName, NULL, > MMIO_ALLOCBUF | MMIO_READ | MMIO_DENYWRITE); > if (ret != 0) return ret; > - if (SearchPathW(NULL, lpszName, dotwav, sizeof(buf)/sizeof(buf[0]), buf, &dummy)) > + if (SearchPathW(NULL, lpszName, dotwav, ARRAY_SIZE(buf), buf, &dummy)) > { > return mmioOpenW(buf, NULL, > MMIO_ALLOCBUF | MMIO_READ | MMIO_DENYWRITE); > @@ -86,11 +86,11 @@ static HMMIO get_mmioFromProfile(UINT uFlags, LPCWSTR lpszName) > static const WCHAR wszNull[] = {0}; > > TRACE("searching in SystemSound list for %s\n", debugstr_w(lpszName)); > - GetProfileStringW(wszSounds, lpszName, wszNull, str, sizeof(str)/sizeof(str[0])); > + GetProfileStringW(wszSounds, lpszName, wszNull, str, ARRAY_SIZE(str)); > if (lstrlenW(str) == 0) > { > if (uFlags & SND_NODEFAULT) goto next; > - GetProfileStringW(wszSounds, wszDefault, wszNull, str, sizeof(str)/sizeof(str[0])); > + GetProfileStringW(wszSounds, wszDefault, wszNull, str, ARRAY_SIZE(str)); > if (lstrlenW(str) == 0) goto next; > } > for (ptr = str; *ptr && *ptr != ','; ptr++); > @@ -108,8 +108,8 @@ static HMMIO get_mmioFromProfile(UINT uFlags, LPCWSTR lpszName) > DWORD len; > > err = 1; /* error */ > - len = GetModuleFileNameW(0, str, sizeof(str)/sizeof(str[0])); > - if (len > 0 && len < sizeof(str)/sizeof(str[0])) > + len = GetModuleFileNameW(0, str, ARRAY_SIZE(str)); > + if (len > 0 && len < ARRAY_SIZE(str)) > { > for (ptr = str + lstrlenW(str) - 1; ptr >= str; ptr--) > { > diff --git a/dlls/winmm/waveform.c b/dlls/winmm/waveform.c > index 0a259c0f74..959773cae4 100644 > --- a/dlls/winmm/waveform.c > +++ b/dlls/winmm/waveform.c > @@ -4354,7 +4354,7 @@ UINT WINAPI mixerGetLineInfoA(HMIXEROBJ hmix, LPMIXERLINEA lpmliA, > mliW.Target.wMid = lpmliA->Target.wMid; > mliW.Target.wPid = lpmliA->Target.wPid; > mliW.Target.vDriverVersion = lpmliA->Target.vDriverVersion; > - MultiByteToWideChar( CP_ACP, 0, lpmliA->Target.szPname, -1, mliW.Target.szPname, sizeof(mliW.Target.szPname)/sizeof(WCHAR)); > + MultiByteToWideChar(CP_ACP, 0, lpmliA->Target.szPname, -1, mliW.Target.szPname, ARRAY_SIZE(mliW.Target.szPname)); > break; > default: > WARN("Unsupported fdwControls=0x%08x\n", fdwInfo); > diff --git a/dlls/winmm/winmm.c b/dlls/winmm/winmm.c > index 487bbff93b..0f0cd946d1 100644 > --- a/dlls/winmm/winmm.c > +++ b/dlls/winmm/winmm.c > @@ -1445,8 +1445,7 @@ static MMRESULT midistream_post_message_and_wait(WINE_MIDIStream* lpMidiStrm, UI > if (GetCurrentThreadId() != lpMidiStrm->dwThreadID) { > DWORD ret; > hObjects[1] = lpMidiStrm->hThread; > - ret = WaitForMultipleObjects(sizeof(hObjects)/sizeof(hObjects[0]), hObjects, > - FALSE, INFINITE); > + ret = WaitForMultipleObjects(ARRAY_SIZE(hObjects), hObjects, FALSE, INFINITE); > if (ret != WAIT_OBJECT_0) { > CloseHandle(hObjects[0]); > WARN("bad WaitForSingleObject (%u)\n", ret); > -- > 2.14.4 > > >