Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/dwrite/analyzer.c | 10 +++++----- dlls/dwrite/dwrite_private.h | 2 ++ dlls/dwrite/font.c | 26 +++++++++++++------------- dlls/dwrite/opentype.c | 6 +++--- 4 files changed, 23 insertions(+), 21 deletions(-)
diff --git a/dlls/dwrite/analyzer.c b/dlls/dwrite/analyzer.c index bb08017611..b20bafa72a 100644 --- a/dlls/dwrite/analyzer.c +++ b/dlls/dwrite/analyzer.c @@ -217,8 +217,8 @@ struct fallback_mapping {
static const struct fallback_mapping fontfallback_neutral_data[] = { #define MAPPING_RANGE(ranges, families) \ - { (DWRITE_UNICODE_RANGE *)ranges, sizeof(ranges)/sizeof(ranges[0]), \ - (WCHAR **)families, sizeof(families)/sizeof(families[0]) } + { (DWRITE_UNICODE_RANGE *)ranges, ARRAY_SIZE(ranges), \ + (WCHAR **)families, ARRAY_SIZE(families) }
MAPPING_RANGE(cjk_ranges, cjk_families),
@@ -1056,7 +1056,7 @@ static UINT32 get_opentype_language(const WCHAR *locale)
if (locale) { WCHAR tag[5]; - if (GetLocaleInfoEx(locale, LOCALE_SOPENTYPELANGUAGETAG, tag, sizeof(tag)/sizeof(WCHAR))) + if (GetLocaleInfoEx(locale, LOCALE_SOPENTYPELANGUAGETAG, tag, ARRAY_SIZE(tag))) language = DWRITE_MAKE_OPENTYPE_TAG(tag[0],tag[1],tag[2],tag[3]); }
@@ -1108,7 +1108,7 @@ static DWRITE_NUMBER_SUBSTITUTION_METHOD get_number_substitutes(IDWriteNumberSub break; case DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL: case DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL: - if (GetLocaleInfoEx(numbersubst->locale, LOCALE_SISO639LANGNAME, isolang, sizeof(isolang)/sizeof(isolang[0]))) { + if (GetLocaleInfoEx(numbersubst->locale, LOCALE_SISO639LANGNAME, isolang, ARRAY_SIZE(isolang))) { static const WCHAR arW[] = {'a','r',0}; static const WCHAR arabicW[] = {0x640,0x641,0x642,0x643,0x644,0x645,0x646,0x647,0x648,0x649,0};
@@ -2199,7 +2199,7 @@ HRESULT create_system_fontfallback(IDWriteFactory5 *factory, IDWriteFontFallback fallback->IDWriteFontFallback_iface.lpVtbl = &fontfallbackvtbl; fallback->factory = factory; fallback->mappings = (struct fallback_mapping *)fontfallback_neutral_data; - fallback->mappings_count = sizeof(fontfallback_neutral_data) / sizeof(*fontfallback_neutral_data); + fallback->mappings_count = ARRAY_SIZE(fontfallback_neutral_data); IDWriteFactory5_GetSystemFontCollection(fallback->factory, FALSE, &fallback->systemcollection, FALSE);
*ret = &fallback->IDWriteFontFallback_iface; diff --git a/dlls/dwrite/dwrite_private.h b/dlls/dwrite/dwrite_private.h index 31b977a159..c16c401ad1 100644 --- a/dlls/dwrite/dwrite_private.h +++ b/dlls/dwrite/dwrite_private.h @@ -24,6 +24,8 @@ #include "wine/list.h" #include "wine/unicode.h"
+#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) + static const DWRITE_MATRIX identity = { 1.0f, 0.0f, diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index c545f09c0a..c7824b6d07 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -419,7 +419,7 @@ static void release_font_data(struct dwrite_font_data *data) if (InterlockedDecrement(&data->ref) > 0) return;
- for (i = DWRITE_INFORMATIONAL_STRING_NONE; i < sizeof(data->info_strings)/sizeof(data->info_strings[0]); i++) { + for (i = DWRITE_INFORMATIONAL_STRING_NONE; i < ARRAY_SIZE(data->info_strings); i++) { if (data->info_strings[i]) IDWriteLocalizedStrings_Release(data->info_strings[i]); } @@ -522,7 +522,7 @@ static ULONG WINAPI dwritefontface_Release(IDWriteFontFace4 *iface) IDWriteFontFileStream_Release(This->stream); heap_free(This->files);
- for (i = 0; i < sizeof(This->glyphs)/sizeof(This->glyphs[0]); i++) + for (i = 0; i < ARRAY_SIZE(This->glyphs); i++) heap_free(This->glyphs[i]);
freetype_notify_cacheremove(iface); @@ -3060,7 +3060,7 @@ static BOOL is_known_weight_value(DWRITE_FONT_WEIGHT weight, WCHAR *nameW) { extrablackW, DWRITE_FONT_WEIGHT_EXTRA_BLACK } };
- ptr = bsearch(&weight, knownweights, sizeof(knownweights)/sizeof(knownweights[0]), sizeof(knownweights[0]), + ptr = bsearch(&weight, knownweights, ARRAY_SIZE(knownweights), sizeof(knownweights[0]), compare_knownweights); if (!ptr) { nameW[0] = 0; @@ -3373,8 +3373,8 @@ static HRESULT init_font_data(const struct fontface_desc *desc, IDWriteLocalized data->fontsig = props.fontsig; data->lf = props.lf;
- fontstrings_get_en_string(*family_name, familyW, sizeof(familyW)/sizeof(WCHAR)); - fontstrings_get_en_string(data->names, faceW, sizeof(faceW)/sizeof(WCHAR)); + fontstrings_get_en_string(*family_name, familyW, ARRAY_SIZE(familyW)); + fontstrings_get_en_string(data->names, faceW, ARRAY_SIZE(faceW)); if (font_apply_differentiation_rules(data, familyW, faceW)) { set_en_localizedstring(*family_name, familyW); set_en_localizedstring(data->names, faceW); @@ -3495,7 +3495,7 @@ static void fontfamily_add_bold_simulated_face(struct dwrite_fontfamily_data *fa
/* Simulated face name should only contain Bold as weight term, so remove existing regular and weight terms. */ - fontstrings_get_en_string(family->fonts[heaviest]->names, initialW, sizeof(initialW)/sizeof(WCHAR)); + fontstrings_get_en_string(family->fonts[heaviest]->names, initialW, ARRAY_SIZE(initialW)); facename_remove_regular_term(initialW, -1);
/* remove current weight pattern */ @@ -3566,7 +3566,7 @@ static void fontfamily_add_oblique_simulated_face(struct dwrite_fontfamily_data /* add oblique simulation based on this regular face */
/* remove regular term if any, append 'Oblique' */ - fontstrings_get_en_string(family->fonts[regular]->names, facenameW, sizeof(facenameW)/sizeof(WCHAR)); + fontstrings_get_en_string(family->fonts[regular]->names, facenameW, ARRAY_SIZE(facenameW)); facename_remove_regular_term(facenameW, -1);
if (*facenameW) @@ -3610,7 +3610,7 @@ static BOOL fontcollection_add_replacement(struct dwrite_fontcollection *collect }
fontcollection_add_family(collection, target); - fontstrings_get_en_string(replacement->familyname, nameW, sizeof(nameW)/sizeof(WCHAR)); + fontstrings_get_en_string(replacement->familyname, nameW, ARRAY_SIZE(nameW)); TRACE("replacement %s -> %s\n", debugstr_w(target_name), debugstr_w(nameW)); } IDWriteLocalizedStrings_Release(strings); @@ -3767,7 +3767,7 @@ HRESULT create_font_collection(IDWriteFactory5 *factory, IDWriteFontFileEnumerat continue; }
- fontstrings_get_en_string(family_name, familyW, sizeof(familyW)/sizeof(WCHAR)); + fontstrings_get_en_string(family_name, familyW, ARRAY_SIZE(familyW));
/* ignore dot named faces */ if (familyW[0] == '.') { @@ -3886,7 +3886,7 @@ static HRESULT create_local_file_reference(IDWriteFactory5 *factory, const WCHAR static const WCHAR fontsW[] = {'\','f','o','n','t','s','\',0}; WCHAR fullpathW[MAX_PATH];
- GetWindowsDirectoryW(fullpathW, sizeof(fullpathW)/sizeof(WCHAR)); + GetWindowsDirectoryW(fullpathW, ARRAY_SIZE(fullpathW)); strcatW(fullpathW, fontsW); strcatW(fullpathW, filename);
@@ -3914,7 +3914,7 @@ static HRESULT WINAPI systemfontfileenumerator_MoveNext(IDWriteFontFileEnumerato { struct system_fontfile_enumerator *enumerator = impl_from_IDWriteFontFileEnumerator(iface); WCHAR name_buf[256], *name = name_buf; - DWORD name_count, max_name_count = sizeof(name_buf) / sizeof(*name_buf), type, data_size; + DWORD name_count, max_name_count = ARRAY_SIZE(name_buf), type, data_size; HRESULT hr = S_OK; LONG r;
@@ -4162,8 +4162,8 @@ HRESULT get_eudc_fontcollection(IDWriteFactory5 *factory, IDWriteFontCollection1 WCHAR keynameW[64], pathW[MAX_PATH]; DWORD type, path_len, name_len;
- path_len = sizeof(pathW)/sizeof(*pathW); - name_len = sizeof(keynameW)/sizeof(*keynameW); + path_len = ARRAY_SIZE(pathW); + name_len = ARRAY_SIZE(keynameW); retval = RegEnumValueW(eudckey, index++, keynameW, &name_len, NULL, &type, (BYTE*)pathW, &path_len); if (retval || type != REG_SZ) continue; diff --git a/dlls/dwrite/opentype.c b/dlls/dwrite/opentype.c index 18fb00be09..b95083e33a 100644 --- a/dlls/dwrite/opentype.c +++ b/dlls/dwrite/opentype.c @@ -1553,7 +1553,7 @@ static BOOL opentype_decode_namerecord(const TT_NAME_V0 *header, BYTE *storage_a UINT codepage;
codepage = get_name_record_codepage(platform, encoding); - get_name_record_locale(platform, lang_id, locale, sizeof(locale)/sizeof(WCHAR)); + get_name_record_locale(platform, lang_id, locale, ARRAY_SIZE(locale));
if (codepage) { DWORD len = MultiByteToWideChar(codepage, 0, (LPSTR)(storage_area + offset), length, NULL, 0); @@ -1730,7 +1730,7 @@ HRESULT opentype_get_font_facename(struct file_stream_desc *stream_desc, WCHAR * BOOL exists;
exists = FALSE; - if (GetSystemDefaultLocaleName(localeW, sizeof(localeW)/sizeof(WCHAR))) + if (GetSystemDefaultLocaleName(localeW, ARRAY_SIZE(localeW))) IDWriteLocalizedStrings_FindLocaleName(lfnames, localeW, &index, &exists);
if (!exists) @@ -1801,7 +1801,7 @@ HRESULT opentype_get_typographic_features(IDWriteFontFace *fontface, UINT32 scri UINT8 i;
*count = 0; - for (i = 0; i < sizeof(tables)/sizeof(tables[0]); i++) { + for (i = 0; i < ARRAY_SIZE(tables); i++) { const OT_ScriptList *scriptlist; const GPOS_GSUB_Header *header; const OT_Script *script;