diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 03fab715885..af867618c64 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -2152,7 +2152,7 @@ static WCHAR *create_temp_dir( MSIDATABASE *db ) if (!db->tempfolder) { WCHAR tmp[MAX_PATH]; - UINT len = sizeof(tmp)/sizeof(tmp[0]); + UINT len = ARRAY_SIZE( tmp ); if (msi_get_property( db, szTempFolder, tmp, &len ) || GetFileAttributesW( tmp ) != FILE_ATTRIBUTE_DIRECTORY) @@ -5546,9 +5546,9 @@ UINT ACTION_ForceReboot(MSIPACKAGE *package) squash_guid( package->ProductCode, squashed_pc ); - GetSystemDirectoryW(sysdir, sizeof(sysdir)/sizeof(sysdir[0])); + GetSystemDirectoryW(sysdir, ARRAY_SIZE(sysdir)); RegCreateKeyW(HKEY_LOCAL_MACHINE,RunOnce,&hkey); - snprintfW( buffer, sizeof(buffer)/sizeof(buffer[0]), msiexec_fmt, sysdir, squashed_pc ); + snprintfW(buffer, ARRAY_SIZE(buffer), msiexec_fmt, sysdir, squashed_pc); msi_reg_set_val_str( hkey, squashed_pc, buffer ); RegCloseKey(hkey); @@ -6214,7 +6214,7 @@ static LPCWSTR *msi_service_args_to_vector(LPWSTR args, DWORD *numargs) static const WCHAR separator[] = {'[','~',']',0}; *numargs = 0; - sep_len = sizeof(separator) / sizeof(WCHAR) - 1; + sep_len = ARRAY_SIZE(separator) - 1; if (!args) return NULL; @@ -7686,7 +7686,7 @@ static UINT ITERATE_RemoveExistingProducts( MSIRECORD *rec, LPVOID param ) MSIPACKAGE *package = param; const WCHAR *property = MSI_RecordGetString( rec, 7 ); int attrs = MSI_RecordGetInteger( rec, 5 ); - UINT len = sizeof(fmtW)/sizeof(fmtW[0]); + UINT len = ARRAY_SIZE( fmtW ); WCHAR *product, *features, *cmd; STARTUPINFOW si; PROCESS_INFORMATION info; @@ -7701,7 +7701,7 @@ static UINT ITERATE_RemoveExistingProducts( MSIRECORD *rec, LPVOID param ) if (features) len += strlenW( features ); else - len += sizeof(szAll) / sizeof(szAll[0]); + len += ARRAY_SIZE( szAll ); if (!(cmd = msi_alloc( len * sizeof(WCHAR) ))) { diff --git a/dlls/msi/appsearch.c b/dlls/msi/appsearch.c index 693da18355c..fbed073bd4a 100644 --- a/dlls/msi/appsearch.c +++ b/dlls/msi/appsearch.c @@ -949,8 +949,7 @@ static UINT ACTION_SearchDirectory(MSIPACKAGE *package, MSISIGNATURE *sig, if (GetDriveTypeW(pathWithDrive) != DRIVE_FIXED) continue; - lstrcpynW(pathWithDrive + 3, path, - sizeof(pathWithDrive) / sizeof(pathWithDrive[0]) - 3); + lstrcpynW(pathWithDrive + 3, path, ARRAY_SIZE(pathWithDrive) - 3); if (sig->File) rc = ACTION_RecurseSearchDirectory(package, &val, sig, diff --git a/dlls/msi/assembly.c b/dlls/msi/assembly.c index 59fd332d253..e3bd9651507 100644 --- a/dlls/msi/assembly.c +++ b/dlls/msi/assembly.c @@ -344,7 +344,7 @@ static const WCHAR *clr_version[] = static const WCHAR *get_clr_version_str( enum clr_version version ) { - if (version >= sizeof(clr_version)/sizeof(clr_version[0])) return clr_version_unknown; + if (version >= ARRAY_SIZE( clr_version )) return clr_version_unknown; return clr_version[version]; } diff --git a/dlls/msi/automation.c b/dlls/msi/automation.c index 06ad2f90a4b..80254e6df45 100644 --- a/dlls/msi/automation.c +++ b/dlls/msi/automation.c @@ -130,7 +130,7 @@ void release_typelib(void) { unsigned i; - for (i = 0; i < sizeof(typeinfos)/sizeof(*typeinfos); i++) + for (i = 0; i < ARRAY_SIZE(typeinfos); i++) if (typeinfos[i]) ITypeInfo_Release(typeinfos[i]); diff --git a/dlls/msi/custom.c b/dlls/msi/custom.c index ee259e8ba3e..436a096f37b 100644 --- a/dlls/msi/custom.c +++ b/dlls/msi/custom.c @@ -213,7 +213,7 @@ WCHAR *msi_create_temp_file( MSIDATABASE *db ) if (!db->tempfolder) { WCHAR tmp[MAX_PATH]; - UINT len = sizeof(tmp)/sizeof(tmp[0]); + UINT len = ARRAY_SIZE( tmp ); if (msi_get_property( db, szTempFolder, tmp, &len ) || GetFileAttributesW( tmp ) != FILE_ATTRIBUTE_DIRECTORY) @@ -605,9 +605,9 @@ static DWORD custom_start_server(MSIPACKAGE *package, DWORD arch) wow64 = FALSE; if ((sizeof(void *) == 8 || wow64) && arch == SCS_32BIT_BINARY) - GetSystemWow64DirectoryW(path, MAX_PATH - sizeof(msiexecW)/sizeof(WCHAR)); + GetSystemWow64DirectoryW(path, MAX_PATH - ARRAY_SIZE(msiexecW)); else - GetSystemDirectoryW(path, MAX_PATH - sizeof(msiexecW)/sizeof(WCHAR)); + GetSystemDirectoryW(path, MAX_PATH - ARRAY_SIZE(msiexecW)); strcatW(path, msiexecW); sprintfW(cmdline, argsW, path, GetCurrentProcessId()); @@ -943,7 +943,7 @@ static UINT HANDLE_CustomType23( MSIPACKAGE *package, const WCHAR *source, const static const WCHAR msiexecW[] = {'m','s','i','e','x','e','c',0}; static const WCHAR paramsW[] = {'/','q','b',' ','/','i',' '}; WCHAR *dir, *arg, *p; - UINT len_src, len_dir, len_tgt, len = sizeof(paramsW)/sizeof(paramsW[0]); + UINT len_src, len_dir, len_tgt, len = ARRAY_SIZE( paramsW ); HANDLE handle; if (!(dir = msi_dup_property( package->db, szOriginalDatabase ))) return ERROR_OUTOFMEMORY; diff --git a/dlls/msi/database.c b/dlls/msi/database.c index ef0221d2b85..c1fb37b5832 100644 --- a/dlls/msi/database.c +++ b/dlls/msi/database.c @@ -451,7 +451,7 @@ static LPWSTR msi_build_createsql_prelude(LPWSTR table) static const WCHAR create_fmt[] = {'C','R','E','A','T','E',' ','T','A','B','L','E',' ','`','%','s','`',' ','(',' ',0}; - size = sizeof(create_fmt)/sizeof(create_fmt[0]) + lstrlenW(table) - 2; + size = ARRAY_SIZE(create_fmt) + lstrlenW(table) - 2; prelude = msi_alloc(size * sizeof(WCHAR)); if (!prelude) return NULL; diff --git a/dlls/msi/dialog.c b/dlls/msi/dialog.c index b96c44be445..68e8ab22587 100644 --- a/dlls/msi/dialog.c +++ b/dlls/msi/dialog.c @@ -3377,7 +3377,7 @@ static UINT msi_dialog_hyperlink_handler( msi_dialog *dialog, msi_control *contr { static const WCHAR hrefW[] = {'h','r','e','f'}; static const WCHAR openW[] = {'o','p','e','n',0}; - int len, len_href = sizeof(hrefW) / sizeof(hrefW[0]); + int len, len_href = ARRAY_SIZE( hrefW ); const WCHAR *p, *q; WCHAR quote = 0; LITEM item; diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c index 7d805afeda3..ae146e626f3 100644 --- a/dlls/msi/msi.c +++ b/dlls/msi/msi.c @@ -1028,7 +1028,7 @@ UINT WINAPI MsiGetProductCodeW(LPCWSTR szComponent, LPWSTR szBuffer) UINT rc, index; HKEY compkey, prodkey; WCHAR squashed_comp[SQUASHED_GUID_SIZE], squashed_prod[SQUASHED_GUID_SIZE]; - DWORD sz = sizeof(squashed_prod)/sizeof(squashed_prod[0]); + DWORD sz = ARRAY_SIZE(squashed_prod); TRACE("%s %p\n", debugstr_w(szComponent), szBuffer); @@ -3482,7 +3482,7 @@ static UINT MSI_ProvideQualifiedComponentEx(LPCWSTR szComponent, return ERROR_FILE_NOT_FOUND; } msi_free( components ); - StringFromGUID2( &guid, comp, sizeof(comp)/sizeof(comp[0]) ); + StringFromGUID2( &guid, comp, ARRAY_SIZE( comp )); } state = MSI_GetComponentPath( szProduct, comp, szAllSid, MSIINSTALLCONTEXT_ALL, lpPathBuf, pcchPathBuf ); diff --git a/dlls/msi/package.c b/dlls/msi/package.c index 0d937d609d5..273ca71418a 100644 --- a/dlls/msi/package.c +++ b/dlls/msi/package.c @@ -559,7 +559,7 @@ static LPWSTR get_fusion_filename(MSIPACKAGE *package) if (!RegCreateKeyExW(netsetup, v4client, 0, NULL, 0, KEY_QUERY_VALUE, NULL, &hkey, NULL)) { - size = sizeof(path)/sizeof(path[0]); + size = ARRAY_SIZE(path); if (!RegQueryValueExW(hkey, installpath, NULL, &type, (BYTE *)path, &size)) { len = strlenW(path) + strlenW(fusion) + 2; diff --git a/dlls/msi/patch.c b/dlls/msi/patch.c index f6ed3c1f1a4..bd9b7b87df4 100644 --- a/dlls/msi/patch.c +++ b/dlls/msi/patch.c @@ -1037,7 +1037,7 @@ UINT msi_apply_registered_patch( MSIPACKAGE *package, LPCWSTR patch_code ) TRACE("%p, %s\n", package, debugstr_w(patch_code)); - len = sizeof(patch_file) / sizeof(WCHAR); + len = ARRAY_SIZE( patch_file ); r = MsiGetPatchInfoExW( patch_code, package->ProductCode, NULL, package->Context, INSTALLPROPERTY_LOCALPACKAGEW, patch_file, &len ); if (r != ERROR_SUCCESS) diff --git a/dlls/msi/registry.c b/dlls/msi/registry.c index cbc8d8d6f0a..efc72725ce7 100644 --- a/dlls/msi/registry.c +++ b/dlls/msi/registry.c @@ -1297,12 +1297,12 @@ static UINT fetch_machine_component( DWORD ctx, DWORD index, DWORD *idx, WCHAR g if (RegOpenKeyExW( HKEY_LOCAL_MACHINE, componentsW, 0, access, &key_components )) return ERROR_NO_MORE_ITEMS; - len_component = sizeof(component)/sizeof(component[0]); + len_component = ARRAY_SIZE( component ); while (!RegEnumKeyExW( key_components, i, component, &len_component, NULL, NULL, NULL, NULL )) { if (*idx == index) goto found; (*idx)++; - len_component = sizeof(component)/sizeof(component[0]); + len_component = ARRAY_SIZE( component ); i++; } RegCloseKey( key_components ); @@ -1349,14 +1349,14 @@ static UINT fetch_user_component( const WCHAR *usersid, DWORD ctx, DWORD index, if (RegOpenKeyExW( HKEY_LOCAL_MACHINE, userdataW, 0, access, &key_users )) return ERROR_NO_MORE_ITEMS; - len_user = sizeof(user)/sizeof(user[0]); + len_user = ARRAY_SIZE( user ); while (!RegEnumKeyExW( key_users, i, user, &len_user, NULL, NULL, NULL, NULL )) { if ((strcmpW( usersid, szAllSid ) && strcmpW( usersid, user )) || !strcmpW( szLocalSid, user )) { i++; - len_user = sizeof(user)/sizeof(user[0]); + len_user = ARRAY_SIZE( user ); continue; } strcpyW( path, user ); @@ -1364,19 +1364,19 @@ static UINT fetch_user_component( const WCHAR *usersid, DWORD ctx, DWORD index, if (RegOpenKeyExW( key_users, path, 0, access, &key_components )) { i++; - len_user = sizeof(user)/sizeof(user[0]); + len_user = ARRAY_SIZE( user ); continue; } - len_component = sizeof(component)/sizeof(component[0]); + len_component = ARRAY_SIZE( component ); while (!RegEnumKeyExW( key_components, j, component, &len_component, NULL, NULL, NULL, NULL )) { if (*idx == index) goto found; (*idx)++; - len_component = sizeof(component)/sizeof(component[0]); + len_component = ARRAY_SIZE( component ); j++; } RegCloseKey( key_components ); - len_user = sizeof(user)/sizeof(user[0]); + len_user = ARRAY_SIZE( user ); i++; } RegCloseKey( key_users ); @@ -1709,7 +1709,7 @@ UINT WINAPI MsiEnumRelatedProductsW(LPCWSTR szUpgradeCode, DWORD dwReserved, UINT r; HKEY hkey; WCHAR szKeyName[SQUASHED_GUID_SIZE]; - DWORD dwSize = sizeof(szKeyName)/sizeof(szKeyName[0]); + DWORD dwSize = ARRAY_SIZE(szKeyName); TRACE("%s %u %u %p\n", debugstr_w(szUpgradeCode), dwReserved, iProductIndex, lpProductBuf); @@ -2324,18 +2324,18 @@ static UINT fetch_machine_product( const WCHAR *match, DWORD index, DWORD *idx, if (RegOpenKeyExW( HKEY_LOCAL_MACHINE, productsW, 0, access, &key )) return ERROR_NO_MORE_ITEMS; - len = sizeof(product)/sizeof(product[0]); + len = ARRAY_SIZE( product ); while (!RegEnumKeyExW( key, i, product, &len, NULL, NULL, NULL, NULL )) { if (match && strcmpW( match, product )) { i++; - len = sizeof(product)/sizeof(product[0]); + len = ARRAY_SIZE( product ); continue; } if (*idx == index) goto found; (*idx)++; - len = sizeof(product)/sizeof(product[0]); + len = ARRAY_SIZE( product ); i++; } RegCloseKey( key ); @@ -2396,13 +2396,13 @@ static UINT fetch_user_product( const WCHAR *match, const WCHAR *usersid, DWORD } else return ERROR_INVALID_PARAMETER; - len_user = sizeof(user)/sizeof(user[0]); + len_user = ARRAY_SIZE( user ); while (!RegEnumKeyExW( key_users, i, user, &len_user, NULL, NULL, NULL, NULL )) { if (strcmpW( usersid, user ) && strcmpW( usersid, szAllSid )) { i++; - len_user = sizeof(user)/sizeof(user[0]); + len_user = ARRAY_SIZE( user ); continue; } strcpyW( path, user ); @@ -2410,25 +2410,25 @@ static UINT fetch_user_product( const WCHAR *match, const WCHAR *usersid, DWORD if (RegOpenKeyExW( key_users, path, 0, access, &key_products )) { i++; - len_user = sizeof(user)/sizeof(user[0]); + len_user = ARRAY_SIZE( user ); continue; } - len_product = sizeof(product)/sizeof(product[0]); + len_product = ARRAY_SIZE( product ); while (!RegEnumKeyExW( key_products, j, product, &len_product, NULL, NULL, NULL, NULL )) { if (match && strcmpW( match, product )) { j++; - len_product = sizeof(product)/sizeof(product[0]); + len_product = ARRAY_SIZE( product ); continue; } if (*idx == index) goto found; (*idx)++; - len_product = sizeof(product)/sizeof(product[0]); + len_product = ARRAY_SIZE( product ); j++; } RegCloseKey( key_products ); - len_user = sizeof(user)/sizeof(user[0]); + len_user = ARRAY_SIZE( user ); i++; } RegCloseKey( key_users ); diff --git a/dlls/msi/source.c b/dlls/msi/source.c index 68bf9d0a226..904589e947c 100644 --- a/dlls/msi/source.c +++ b/dlls/msi/source.c @@ -1006,7 +1006,7 @@ static UINT fill_source_list(struct list *sourcelist, HKEY sourcekey, DWORD *cou while (r == ERROR_SUCCESS) { - size = sizeof(name) / sizeof(name[0]); + size = ARRAY_SIZE(name); r = RegEnumValueW(sourcekey, index, name, &size, NULL, NULL, NULL, &val_size); if (r != ERROR_SUCCESS) return r; diff --git a/dlls/msi/upgrade.c b/dlls/msi/upgrade.c index ac58d909e05..bbc7df6eec5 100644 --- a/dlls/msi/upgrade.c +++ b/dlls/msi/upgrade.c @@ -103,7 +103,7 @@ static UINT ITERATE_FindRelatedProducts(MSIRECORD *rec, LPVOID param) { MSIPACKAGE *package = param; WCHAR product[SQUASHED_GUID_SIZE]; - DWORD index = 0, attributes = 0, sz = sizeof(product)/sizeof(product[0]); + DWORD index = 0, attributes = 0, sz = ARRAY_SIZE(product); LPCWSTR upgrade_code; HKEY hkey = 0; UINT rc = ERROR_SUCCESS;