From 63bdcf97a7332b2f413a8b2c06d3d22dbbd7f922 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Tue, 22 May 2018 11:50:42 +0300 Subject: [PATCH] dwrite/tests: Use ARRAY_SIZE() macro in tests. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/dwrite/tests/analyzer.c | 20 ++++++----- dlls/dwrite/tests/font.c | 60 ++++++++++++++++--------------- dlls/dwrite/tests/layout.c | 86 ++++++++++++++++++++++---------------------- 3 files changed, 86 insertions(+), 80 deletions(-) diff --git a/dlls/dwrite/tests/analyzer.c b/dlls/dwrite/tests/analyzer.c index c5a0b0991f8..93ee152c23c 100644 --- a/dlls/dwrite/tests/analyzer.c +++ b/dlls/dwrite/tests/analyzer.c @@ -31,6 +31,8 @@ #include "wine/test.h" +#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) + static IDWriteFactory *factory; static const WCHAR test_fontfile[] = {'w','i','n','e','_','t','e','s','t','_','f','o','n','t','.','t','t','f',0}; @@ -484,7 +486,7 @@ static WCHAR *create_testfontfile(const WCHAR *filename) HRSRC res; void *ptr; - GetTempPathW(sizeof(pathW)/sizeof(WCHAR), pathW); + GetTempPathW(ARRAY_SIZE(pathW), pathW); lstrcatW(pathW, filename); file = CreateFileW(pathW, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0); @@ -1273,7 +1275,7 @@ if (0) { /* crashes on native */ fontface = create_fontface(); - for (i = 0; i < sizeof(textcomplexity_tests)/sizeof(struct textcomplexity_test); i++) { + for (i = 0; i < ARRAY_SIZE(textcomplexity_tests); i++) { const struct textcomplexity_test *ptr = &textcomplexity_tests[i]; len = 1; simple = !ptr->simple; @@ -1563,7 +1565,7 @@ todo_wine { get_script_analysis(arabicW, &sa); memset(tags, 0, sizeof(tags)); count = 0; - hr = IDWriteTextAnalyzer2_GetTypographicFeatures(analyzer2, fontface, sa, NULL, sizeof(tags)/sizeof(tags[0]), &count, tags); + hr = IDWriteTextAnalyzer2_GetTypographicFeatures(analyzer2, fontface, sa, NULL, ARRAY_SIZE(tags), &count, tags); ok(hr == S_OK, "got 0x%08x\n", hr); todo_wine { ok(count > 0, "got %u\n", count); @@ -1575,7 +1577,7 @@ todo_wine { get_script_analysis(abcW, &sa); memset(tags, 0, sizeof(tags)); count = 0; - hr = IDWriteTextAnalyzer2_GetTypographicFeatures(analyzer2, fontface, sa, NULL, sizeof(tags)/sizeof(tags[0]), &count, tags); + hr = IDWriteTextAnalyzer2_GetTypographicFeatures(analyzer2, fontface, sa, NULL, ARRAY_SIZE(tags), &count, tags); ok(hr == S_OK, "got 0x%08x\n", hr); todo_wine { ok(count > 0, "got %u\n", count); @@ -1820,7 +1822,7 @@ static void test_ApplyCharacterSpacing(void) return; } - for (i = 0; i < sizeof(spacing_tests)/sizeof(spacing_tests[0]); i++) { + for (i = 0; i < ARRAY_SIZE(spacing_tests); i++) { const struct spacing_test *ptr = spacing_tests + i; DWRITE_GLYPH_OFFSET offsets[3]; UINT32 glyph_count; @@ -1853,7 +1855,7 @@ static void test_ApplyCharacterSpacing(void) ptr->leading, ptr->trailing, ptr->min_advance, - sizeof(clustermap)/sizeof(clustermap[0]), + ARRAY_SIZE(clustermap), glyph_count, clustermap, ptr->advances, @@ -1907,7 +1909,7 @@ static void test_ApplyCharacterSpacing(void) ptr->leading, ptr->trailing, ptr->min_advance, - sizeof(clustermap)/sizeof(clustermap[0]), + ARRAY_SIZE(clustermap), glyph_count, clustermap, advances, @@ -2003,7 +2005,7 @@ static void test_GetGlyphOrientationTransform(void) ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); ok(m.m11 == 0.0, "got %.2f\n", m.m11); - for (i = 0; i < sizeof(ot_tests)/sizeof(ot_tests[0]); i++) { + for (i = 0; i < ARRAY_SIZE(ot_tests); i++) { memset(&m, 0, sizeof(m)); hr = IDWriteTextAnalyzer1_GetGlyphOrientationTransform(analyzer1, ot_tests[i].angle, ot_tests[i].is_sideways, &m); @@ -2027,7 +2029,7 @@ static void test_GetGlyphOrientationTransform(void) originx = 50.0; originy = 60.0; - for (i = 0; i < sizeof(ot_tests)/sizeof(ot_tests[0]); i++) { + for (i = 0; i < ARRAY_SIZE(ot_tests); i++) { DWRITE_GLYPH_ORIENTATION_ANGLE angle = DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES; DWRITE_MATRIX m_exp; diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index 1180ad42709..db9949faac6 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -33,6 +33,8 @@ #include "wine/heap.h" #include "wine/test.h" +#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) + #define MS_CMAP_TAG DWRITE_MAKE_OPENTYPE_TAG('c','m','a','p') #define MS_VDMX_TAG DWRITE_MAKE_OPENTYPE_TAG('V','D','M','X') #define MS_GASP_TAG DWRITE_MAKE_OPENTYPE_TAG('g','a','s','p') @@ -487,7 +489,7 @@ static WCHAR *create_testfontfile(const WCHAR *filename) HRSRC res; void *ptr; - GetTempPathW(sizeof(pathW)/sizeof(WCHAR), pathW); + GetTempPathW(ARRAY_SIZE(pathW), pathW); lstrcatW(pathW, filename); file = CreateFileW(pathW, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0); @@ -850,7 +852,7 @@ static void WINAPI test_geometrysink_BeginFigure(ID2D1SimplifiedGeometrySink *if D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) { ok(figureBegin == D2D1_FIGURE_BEGIN_FILLED, "begin figure %d\n", figureBegin); - if (g_startpoint_count < sizeof(g_startpoints)/sizeof(g_startpoints[0])) + if (g_startpoint_count < ARRAY_SIZE(g_startpoints)) g_startpoints[g_startpoint_count] = startPoint; g_startpoint_count++; } @@ -1021,7 +1023,7 @@ static void test_CreateFontFromLOGFONT(void) IDWriteFont_Release(font); /* weight values */ - for (i = 0; i < sizeof(weights)/(2*sizeof(LONG)); i++) + for (i = 0; i < ARRAY_SIZE(weights); i++) { memset(&logfont, 0, sizeof(logfont)); logfont.lfHeight = 12; @@ -2218,7 +2220,7 @@ static void test_GetMetrics(void) hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, nameW, sizeof(nameW)/sizeof(nameW[0])); + get_enus_string(names, nameW, ARRAY_SIZE(nameW)); IDWriteLocalizedStrings_Release(names); IDWriteFont_Release(font); @@ -2517,14 +2519,14 @@ static void get_logfont_from_font(IDWriteFont *font, LOGFONTW *logfont) /* Fallback to en-us if there's no string for user locale. */ exists = FALSE; - if (GetSystemDefaultLocaleName(localeW, sizeof(localeW)/sizeof(WCHAR))) + if (GetSystemDefaultLocaleName(localeW, ARRAY_SIZE(localeW))) IDWriteLocalizedStrings_FindLocaleName(names, localeW, &index, &exists); if (!exists) IDWriteLocalizedStrings_FindLocaleName(names, enusW, &index, &exists); if (exists) - IDWriteLocalizedStrings_GetString(names, index, logfont->lfFaceName, sizeof(logfont->lfFaceName)/sizeof(WCHAR)); + IDWriteLocalizedStrings_GetString(names, index, logfont->lfFaceName, ARRAY_SIZE(logfont->lfFaceName)); } IDWriteLocalizedStrings_Release(names); @@ -2582,7 +2584,7 @@ if (0) /* crashes on native */ hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, familynameW, sizeof(familynameW)/sizeof(familynameW[0])); + get_enus_string(names, familynameW, ARRAY_SIZE(familynameW)); IDWriteLocalizedStrings_Release(names); font_count = IDWriteFontFamily_GetFontCount(family); @@ -2597,7 +2599,7 @@ if (0) /* crashes on native */ hr = IDWriteFont_GetFaceNames(font, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, facenameW, sizeof(facenameW)/sizeof(facenameW[0])); + get_enus_string(names, facenameW, ARRAY_SIZE(facenameW)); IDWriteLocalizedStrings_Release(names); lstrcpyW(nameW, familynameW); @@ -3837,12 +3839,12 @@ static void test_GetFaceNames(void) /* for simulated faces names are also simulated */ buffW[0] = 0; - hr = IDWriteLocalizedStrings_GetLocaleName(strings, 0, buffW, sizeof(buffW)/sizeof(WCHAR)); + hr = IDWriteLocalizedStrings_GetLocaleName(strings, 0, buffW, ARRAY_SIZE(buffW)); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, enusW), "got %s\n", wine_dbgstr_w(buffW)); buffW[0] = 0; - hr = IDWriteLocalizedStrings_GetString(strings, 0, buffW, sizeof(buffW)/sizeof(WCHAR)); + hr = IDWriteLocalizedStrings_GetString(strings, 0, buffW, ARRAY_SIZE(buffW)); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, obliqueW), "got %s\n", wine_dbgstr_w(buffW)); IDWriteLocalizedStrings_Release(strings); @@ -3903,7 +3905,7 @@ static void test_TryGetFontTable(void) ok(hr == S_OK, "got 0x%08x\n", hr); ok(lstrlenW(key->name) == len, "path length %d\n", len); - hr = IDWriteLocalFontFileLoader_GetFilePathFromKey(localloader, key, size, buffW, sizeof(buffW)/sizeof(WCHAR)); + hr = IDWriteLocalFontFileLoader_GetFilePathFromKey(localloader, key, size, buffW, ARRAY_SIZE(buffW)); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, key->name), "got %s, expected %s\n", wine_dbgstr_w(buffW), wine_dbgstr_w(key->name)); IDWriteLocalFontFileLoader_Release(localloader); @@ -4005,7 +4007,7 @@ if (0) { /* crashes on native */ hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, familynameW, sizeof(familynameW)/sizeof(familynameW[0])); + get_enus_string(names, familynameW, ARRAY_SIZE(familynameW)); IDWriteLocalizedStrings_Release(names); font_count = IDWriteFontFamily_GetFontCount(family); @@ -4019,7 +4021,7 @@ if (0) { /* crashes on native */ hr = IDWriteFont_GetFaceNames(font, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, facenameW, sizeof(facenameW)/sizeof(facenameW[0])); + get_enus_string(names, facenameW, ARRAY_SIZE(facenameW)); IDWriteLocalizedStrings_Release(names); lstrcpyW(nameW, familynameW); @@ -4927,7 +4929,7 @@ static void test_CreateGlyphRunAnalysis(void) OffsetRect(&rect, 10, -5); ok(EqualRect(&rect, &rect2), "got different bounds\n"); - for (i = 0; i < sizeof(rendermodes)/sizeof(rendermodes[0]); i++) { + for (i = 0; i < ARRAY_SIZE(rendermodes); i++) { hr = IDWriteFactory_CreateGlyphRunAnalysis(factory, &run, 1.0, NULL, rendermodes[i], DWRITE_MEASURING_MODE_NATURAL, 0.0, 0.0, &analysis); @@ -5517,7 +5519,7 @@ static void test_gdicompat_metrics(IDWriteFontFace *face) ok(hr == E_INVALIDARG, "got %08x\n", hr); test_metrics_cmp(5.0, &comp_metrics, &expected); - for (i = 0; i < sizeof(compatmetrics_tests)/sizeof(compatmetrics_tests[0]); i++) { + for (i = 0; i < ARRAY_SIZE(compatmetrics_tests); i++) { struct compatmetrics_test *ptr = &compatmetrics_tests[i]; get_expected_metrics(face, ptr, (DWRITE_FONT_METRICS*)&expected); @@ -5700,7 +5702,7 @@ static void test_GetPanose(void) hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, nameW, sizeof(nameW)/sizeof(nameW[0])); + get_enus_string(names, nameW, ARRAY_SIZE(nameW)); IDWriteLocalizedStrings_Release(names); @@ -6032,7 +6034,7 @@ static void test_GetRecommendedRenderingMode(void) WORD gasp; int i; - for (i = 0; i < sizeof(recmode_tests)/sizeof(recmode_tests[0]); i++) { + for (i = 0; i < ARRAY_SIZE(recmode_tests); i++) { ppdip = 1.0f; mode = 10; gasp = get_gasp_flags(fontface, emsize, ppdip); @@ -6073,7 +6075,7 @@ static void test_GetRecommendedRenderingMode(void) /* IDWriteFontFace1 offers another variant of this method */ if (fontface1) { - for (i = 0; i < sizeof(recmode_tests1)/sizeof(recmode_tests1[0]); i++) { + for (i = 0; i < ARRAY_SIZE(recmode_tests1); i++) { FLOAT dpi; ppdip = 1.0f; @@ -6158,7 +6160,7 @@ static void test_GetRecommendedRenderingMode(void) DWRITE_GRID_FIT_MODE gridfit, expected_gridfit; gasp = get_gasp_flags(fontface, emsize, 1.0f); - for (i = 0; i < sizeof(recmode_tests1)/sizeof(recmode_tests1[0]); i++) { + for (i = 0; i < ARRAY_SIZE(recmode_tests1); i++) { mode = 10; expected = get_expected_rendering_mode(emsize, gasp, recmode_tests1[i].measuring, recmode_tests1[i].threshold); expected_gridfit = get_expected_gridfit_mode(emsize, gasp, recmode_tests1[i].measuring, recmode_tests1[i].threshold); @@ -6177,7 +6179,7 @@ static void test_GetRecommendedRenderingMode(void) DWRITE_RENDERING_MODE1 mode1, expected1; gasp = get_gasp_flags(fontface, emsize, 1.0f); - for (i = 0; i < sizeof(recmode_tests1)/sizeof(recmode_tests1[0]); i++) { + for (i = 0; i < ARRAY_SIZE(recmode_tests1); i++) { mode1 = 10; expected1 = get_expected_rendering_mode(emsize, gasp, recmode_tests1[i].measuring, recmode_tests1[i].threshold); expected_gridfit = get_expected_gridfit_mode(emsize, gasp, recmode_tests1[i].measuring, recmode_tests1[i].threshold); @@ -6380,7 +6382,7 @@ static void test_GetAlphaBlendParams(void) ok(ret, "got %d\n", ret); expected_gdi_gamma = (FLOAT)(value / 1000.0); - for (i = 0; i < sizeof(rendermodes)/sizeof(rendermodes[0]); i++) { + for (i = 0; i < ARRAY_SIZE(rendermodes); i++) { hr = IDWriteFactory_CreateGlyphRunAnalysis(factory, &run, 1.0, NULL, rendermodes[i], DWRITE_MEASURING_MODE_NATURAL, 0.0, 0.0, &analysis); @@ -7141,7 +7143,7 @@ static void test_GetFontSignature(void) hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, nameW, sizeof(nameW)/sizeof(nameW[0])); + get_enus_string(names, nameW, ARRAY_SIZE(nameW)); IDWriteLocalizedStrings_Release(names); @@ -7336,7 +7338,7 @@ static void test_HasVerticalGlyphVariants(void) hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, nameW, sizeof(nameW)/sizeof(nameW[0])); + get_enus_string(names, nameW, ARRAY_SIZE(nameW)); expected_vert = has_vertical_glyph_variants(fontface1); has_vert = IDWriteFontFace1_HasVerticalGlyphVariants(fontface1); @@ -7409,7 +7411,7 @@ static void test_HasKerningPairs(void) hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, nameW, sizeof(nameW)/sizeof(nameW[0])); + get_enus_string(names, nameW, ARRAY_SIZE(nameW)); exists = FALSE; hr = IDWriteFontFace1_TryGetFontTable(fontface1, MS_KERN_TAG, &data, &size, &context, &exists); @@ -8112,7 +8114,7 @@ static void test_GetGlyphImageFormats(void) hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, familynameW, sizeof(familynameW)/sizeof(*familynameW)); + get_enus_string(names, familynameW, ARRAY_SIZE(familynameW)); IDWriteLocalizedStrings_Release(names); fontcount = IDWriteFontFamily_GetFontCount(family); @@ -8128,7 +8130,7 @@ static void test_GetGlyphImageFormats(void) hr = IDWriteFont_GetFaceNames(font, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - get_enus_string(names, facenameW, sizeof(facenameW)/sizeof(*facenameW)); + get_enus_string(names, facenameW, ARRAY_SIZE(facenameW)); IDWriteLocalizedStrings_Release(names); @@ -8184,7 +8186,7 @@ static void test_CreateCustomRenderingParams(void) factory = create_factory(); - for (i = 0; i < sizeof(params_tests)/sizeof(*params_tests); i++) { + for (i = 0; i < ARRAY_SIZE(params_tests); i++) { IDWriteRenderingParams *params; params = (void *)0xdeadbeef; @@ -8415,12 +8417,12 @@ todo_wine ok(c == 1, "Unexpected string count %u.\n", c); buffW[0] = 'a'; - hr = IDWriteLocalizedStrings_GetLocaleName(values, 0, buffW, sizeof(buffW)/sizeof(buffW[0])); + hr = IDWriteLocalizedStrings_GetLocaleName(values, 0, buffW, ARRAY_SIZE(buffW)); ok(hr == S_OK, "Failed to get locale name, hr %#x.\n", hr); ok(!*buffW, "Unexpected locale %s.\n", wine_dbgstr_w(buffW)); buff2W[0] = 0; - hr = IDWriteLocalizedStrings_GetString(values, 0, buff2W, sizeof(buff2W)/sizeof(buff2W[0])); + hr = IDWriteLocalizedStrings_GetString(values, 0, buff2W, ARRAY_SIZE(buff2W)); ok(hr == S_OK, "Failed to get property string, hr %#x.\n", hr); wsprintfW(buffW, fmtW, ivalue); diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c index 71ff5fa7128..c2dd273c6c1 100644 --- a/dlls/dwrite/tests/layout.c +++ b/dlls/dwrite/tests/layout.c @@ -29,6 +29,8 @@ #include "wine/test.h" +#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0])) + static const WCHAR tahomaW[] = {'T','a','h','o','m','a',0}; static const WCHAR enusW[] = {'e','n','-','u','s',0}; @@ -236,7 +238,7 @@ static IDWriteFontFace *get_fontface_from_format(IDWriteTextFormat *format) hr = IDWriteTextFormat_GetFontCollection(format, &collection); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IDWriteTextFormat_GetFontFamilyName(format, nameW, sizeof(nameW)/sizeof(WCHAR)); + hr = IDWriteTextFormat_GetFontFamilyName(format, nameW, ARRAY_SIZE(nameW)); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IDWriteFontCollection_FindFamilyName(collection, nameW, &index, &exists); @@ -574,8 +576,8 @@ static HRESULT WINAPI testrenderer_DrawGlyphRun(IDWriteTextRenderer *iface, ctxt->originY = baselineOriginY; } - ok(descr->stringLength < sizeof(entry.string)/sizeof(WCHAR), "string is too long\n"); - if (descr->stringLength && descr->stringLength < sizeof(entry.string)/sizeof(WCHAR)) { + ok(descr->stringLength < ARRAY_SIZE(entry.string), "string is too long\n"); + if (descr->stringLength && descr->stringLength < ARRAY_SIZE(entry.string)) { memcpy(entry.string, descr->string, descr->stringLength*sizeof(WCHAR)); entry.string[descr->stringLength] = 0; } @@ -1079,7 +1081,7 @@ static void test_CreateGdiCompatibleTextLayout(void) IDWriteTextLayout_Release(layout); /* transforms */ - for (i = 0; i < sizeof(layoutcreate_transforms)/sizeof(layoutcreate_transforms[0]); i++) { + for (i = 0; i < ARRAY_SIZE(layoutcreate_transforms); i++) { hr = IDWriteFactory_CreateGdiCompatibleTextLayout(factory, strW, 1, format, 100.0, 100.0, 1.0, &layoutcreate_transforms[i], FALSE, &layout); ok(hr == S_OK, "got 0x%08x\n", hr); @@ -2009,7 +2011,7 @@ static void test_GetClusterMetrics(void) /* check every cluster width */ count = 0; - hr = IDWriteTextLayout_GetClusterMetrics(layout, metrics, sizeof(metrics)/sizeof(metrics[0]), &count); + hr = IDWriteTextLayout_GetClusterMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "got 0x%08x\n", hr); ok(count == 4, "got %u\n", count); for (i = 0; i < count; i++) { @@ -2044,7 +2046,7 @@ static void test_GetClusterMetrics(void) ok(hr == S_OK, "got 0x%08x\n", hr); count = 0; - hr = IDWriteTextLayout_GetClusterMetrics(layout, metrics2, sizeof(metrics2)/sizeof(metrics2[0]), &count); + hr = IDWriteTextLayout_GetClusterMetrics(layout, metrics2, ARRAY_SIZE(metrics2), &count); ok(hr == S_OK, "got 0x%08x\n", hr); ok(count == 4, "got %u\n", count); for (i = 0; i < count; i++) { @@ -2265,7 +2267,7 @@ todo_wine count = 0; memset(metrics, 0, sizeof(metrics)); - hr = IDWriteTextLayout_GetClusterMetrics(layout, metrics, sizeof(metrics)/sizeof(metrics[0]), &count); + hr = IDWriteTextLayout_GetClusterMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "got 0x%08x\n", hr); ok(count == 22, "got %u\n", count); @@ -2308,7 +2310,7 @@ todo_wine IDWriteTextLayout_Release(layout); /* Test whitespace resolution from linebreaking classes BK, ZW, and SP */ - hr = IDWriteFactory_CreateTextLayout(factory, str_white_spaceW, sizeof(str_white_spaceW)/sizeof(WCHAR), format, + hr = IDWriteFactory_CreateTextLayout(factory, str_white_spaceW, ARRAY_SIZE(str_white_spaceW), format, 100.0f, 200.0f, &layout); ok(hr == S_OK, "got 0x%08x\n", hr); @@ -2395,7 +2397,7 @@ static void test_SetLocaleName(void) { static const WCHAR eNuSW[] = {'e','N','-','u','S',0}; static const WCHAR strW[] = {'a','b','c','d',0}; - WCHAR buffW[LOCALE_NAME_MAX_LENGTH+sizeof(strW)/sizeof(WCHAR)]; + WCHAR buffW[LOCALE_NAME_MAX_LENGTH + ARRAY_SIZE(strW)]; IDWriteTextFormat *format, *format2; IDWriteTextLayout *layout; DWRITE_TEXT_RANGE range; @@ -2409,7 +2411,7 @@ static void test_SetLocaleName(void) DWRITE_FONT_STRETCH_NORMAL, 10.0, eNuSW, &format); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IDWriteTextFormat_GetLocaleName(format, buffW, sizeof(buffW)/sizeof(buffW[0])); + hr = IDWriteTextFormat_GetLocaleName(format, buffW, ARRAY_SIZE(buffW)); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, enusW), "got %s\n", wine_dbgstr_w(buffW)); @@ -2419,11 +2421,11 @@ static void test_SetLocaleName(void) hr = IDWriteTextLayout_QueryInterface(layout, &IID_IDWriteTextFormat, (void**)&format2); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IDWriteTextFormat_GetLocaleName(format2, buffW, sizeof(buffW)/sizeof(buffW[0])); + hr = IDWriteTextFormat_GetLocaleName(format2, buffW, ARRAY_SIZE(buffW)); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, enusW), "got %s\n", wine_dbgstr_w(buffW)); - hr = IDWriteTextLayout_GetLocaleName(layout, 0, buffW, sizeof(buffW)/sizeof(buffW[0]), NULL); + hr = IDWriteTextLayout_GetLocaleName(layout, 0, buffW, ARRAY_SIZE(buffW), NULL); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, enusW), "got %s\n", wine_dbgstr_w(buffW)); @@ -2458,7 +2460,7 @@ static void test_SetLocaleName(void) buffW[0] = 0; range.length = 0; - hr = IDWriteTextLayout_GetLocaleName(layout, 0, buffW, sizeof(buffW)/sizeof(WCHAR), &range); + hr = IDWriteTextLayout_GetLocaleName(layout, 0, buffW, ARRAY_SIZE(buffW), &range); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, strW), "got %s\n", wine_dbgstr_w(buffW)); ok(range.startPosition == 0 && range.length == 1, "got %u,%u\n", range.startPosition, range.length); @@ -2480,7 +2482,7 @@ static void test_SetLocaleName(void) ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); buffW[0] = 0; - hr = IDWriteTextLayout_GetLocaleName(layout, 0, buffW, sizeof(buffW)/sizeof(WCHAR), NULL); + hr = IDWriteTextLayout_GetLocaleName(layout, 0, buffW, ARRAY_SIZE(buffW), NULL); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, strW), "got %s\n", wine_dbgstr_w(buffW)); @@ -2492,7 +2494,7 @@ static void test_SetLocaleName(void) buffW[0] = 0; range.length = 0; - hr = IDWriteTextLayout_GetLocaleName(layout, 0, buffW, sizeof(buffW)/sizeof(WCHAR), &range); + hr = IDWriteTextLayout_GetLocaleName(layout, 0, buffW, ARRAY_SIZE(buffW), &range); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, enusW), "got %s\n", wine_dbgstr_w(buffW)); ok((range.startPosition == 0 && range.length == ~0u) || @@ -2501,7 +2503,7 @@ static void test_SetLocaleName(void) /* check what's returned for positions after the text */ buffW[0] = 0; range.length = 0; - hr = IDWriteTextLayout_GetLocaleName(layout, 100, buffW, sizeof(buffW)/sizeof(WCHAR), &range); + hr = IDWriteTextLayout_GetLocaleName(layout, 100, buffW, ARRAY_SIZE(buffW), &range); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, enusW), "got %s\n", wine_dbgstr_w(buffW)); ok((range.startPosition == 0 && range.length == ~0u) || @@ -2754,14 +2756,14 @@ static void test_DetermineMinWidth(void) ok(minwidth == 0.0f, "got %f\n", minwidth); IDWriteTextLayout_Release(layout); - for (i = 0; i < sizeof(minwidth_tests)/sizeof(minwidth_tests[0]); i++) { + for (i = 0; i < ARRAY_SIZE(minwidth_tests); i++) { FLOAT width = 0.0f; /* measure expected width */ hr = IDWriteFactory_CreateTextLayout(factory, minwidth_tests[i].mintext, lstrlenW(minwidth_tests[i].mintext), format, 1000.0f, 1000.0f, &layout); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IDWriteTextLayout_GetClusterMetrics(layout, metrics, sizeof(metrics)/sizeof(metrics[0]), &count); + hr = IDWriteTextLayout_GetClusterMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "got 0x%08x\n", hr); for (j = 0; j < count; j++) @@ -2906,7 +2908,7 @@ static void test_SetFontFamilyName(void) r.startPosition = 1; r.length = 0; nameW[0] = 0; - hr = IDWriteTextLayout_GetFontFamilyName(layout, 1, nameW, sizeof(nameW)/sizeof(WCHAR), &r); + hr = IDWriteTextLayout_GetFontFamilyName(layout, 1, nameW, ARRAY_SIZE(nameW), &r); ok(hr == S_OK, "got 0x%08x\n", hr); ok(r.startPosition == 0 && r.length == ~0u, "got %u, %u\n", r.startPosition, r.length); @@ -2925,7 +2927,7 @@ static void test_SetFontFamilyName(void) r.startPosition = 0; r.length = 0; nameW[0] = 0; - hr = IDWriteTextLayout_GetFontFamilyName(layout, 1, nameW, sizeof(nameW)/sizeof(WCHAR), &r); + hr = IDWriteTextLayout_GetFontFamilyName(layout, 1, nameW, ARRAY_SIZE(nameW), &r); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(nameW, taHomaW), "got %s\n", wine_dbgstr_w(nameW)); ok(r.startPosition == 1 && r.length == 1, "got %u, %u\n", r.startPosition, r.length); @@ -2937,7 +2939,7 @@ static void test_SetFontFamilyName(void) r.startPosition = 1; r.length = 0; - hr = IDWriteTextLayout_GetFontFamilyName(layout, 1, nameW, sizeof(nameW)/sizeof(WCHAR), &r); + hr = IDWriteTextLayout_GetFontFamilyName(layout, 1, nameW, ARRAY_SIZE(nameW), &r); ok(hr == S_OK, "got 0x%08x\n", hr); ok(r.startPosition == 1 && r.length == 1, "got %u, %u\n", r.startPosition, r.length); @@ -2947,7 +2949,7 @@ static void test_SetFontFamilyName(void) ok(hr == S_OK, "got 0x%08x\n", hr); nameW[0] = 0; - hr = IDWriteTextLayout_GetFontFamilyName(layout, 1, nameW, sizeof(nameW)/sizeof(WCHAR), &r); + hr = IDWriteTextLayout_GetFontFamilyName(layout, 1, nameW, ARRAY_SIZE(nameW), &r); ok(hr == S_OK, "got 0x%08x\n", hr); ok(r.startPosition == 0 && r.length == 4, "got %u, %u\n", r.startPosition, r.length); ok(!lstrcmpW(nameW, arialW), "got name %s\n", wine_dbgstr_w(nameW)); @@ -3590,7 +3592,7 @@ static void test_GetLineMetrics(void) hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - if (!(exists = get_enus_string(names, nameW, sizeof(nameW)/sizeof(nameW[0])))) { + if (!(exists = get_enus_string(names, nameW, ARRAY_SIZE(nameW)))) { IDWriteLocalFontFileLoader *localloader; IDWriteFontFileLoader *loader; IDWriteFontFile *file; @@ -3612,7 +3614,7 @@ static void test_GetLineMetrics(void) hr = IDWriteFontFile_GetReferenceKey(file, &key, &keysize); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IDWriteLocalFontFileLoader_GetFilePathFromKey(localloader, key, keysize, nameW, sizeof(nameW)/sizeof(*nameW)); + hr = IDWriteLocalFontFileLoader_GetFilePathFromKey(localloader, key, keysize, nameW, ARRAY_SIZE(nameW)); ok(hr == S_OK, "got 0x%08x\n", hr); skip("Failed to get English family name, font file %s\n", wine_dbgstr_w(nameW)); @@ -3637,7 +3639,7 @@ static void test_GetLineMetrics(void) memset(metrics, 0, sizeof(metrics)); count = 0; - hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, sizeof(metrics)/sizeof(metrics[0]), &count); + hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "got 0x%08x\n", hr); ok(count == 1, "got %u\n", count); @@ -3671,7 +3673,7 @@ static void test_GetLineMetrics(void) memset(metrics, 0, sizeof(metrics)); count = 0; - hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, sizeof(metrics)/sizeof(*metrics), &count); + hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "got 0x%08x\n", hr); ok(count == 2, "got %u\n", count); /* baseline is relative to a line, and is not accumulated */ @@ -3691,7 +3693,7 @@ static void test_GetLineMetrics(void) memset(metrics, 0xcc, sizeof(metrics)); count = 0; - hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, sizeof(metrics)/sizeof(*metrics), &count); + hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "got 0x%08x\n", hr); ok(count == 6, "got %u\n", count); @@ -3772,7 +3774,7 @@ static void test_GetLineMetrics(void) count = 0; memset(metrics, 0, sizeof(metrics)); - hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, sizeof(metrics)/sizeof(*metrics), &count); + hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "got 0x%08x\n", hr); ok(count == 2, "got %u\n", count); ok(metrics[0].length == 2, "got %u\n", metrics[0].length); @@ -3808,7 +3810,7 @@ static void test_GetLineMetrics(void) hr = IDWriteTextLayout_SetLineSpacing(layout, DWRITE_LINE_SPACING_METHOD_UNIFORM, 456.0f, 123.0f); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, sizeof(metrics)/sizeof(metrics[0]), &count); + hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "got 0x%08x\n", hr); ok(count == 2, "got %u\n", count); @@ -3825,7 +3827,7 @@ static void test_GetLineMetrics(void) hr = IDWriteFactory_CreateTextLayout(factory, str4W, 1, format, 100.0f, 300.0f, &layout); ok(hr == S_OK, "Failed to create layout, hr %#x.\n", hr); - hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, sizeof(metrics)/sizeof(metrics[0]), &count); + hr = IDWriteTextLayout_GetLineMetrics(layout, metrics, ARRAY_SIZE(metrics), &count); ok(hr == S_OK, "Failed to get line metrics, hr %#x.\n", hr); ok(count == 1, "Unexpected line count %u\n", count); @@ -3918,7 +3920,7 @@ static void test_SetTextAlignment(void) IDWriteTextLayout_Release(layout); - for (i = 0; i < sizeof(stringsW)/sizeof(stringsW[0]); i++) { + for (i = 0; i < ARRAY_SIZE(stringsW); i++) { FLOAT text_width; hr = IDWriteTextFormat_SetTextAlignment(format, DWRITE_TEXT_ALIGNMENT_LEADING); @@ -3931,7 +3933,7 @@ static void test_SetTextAlignment(void) ok(hr == S_OK, "got 0x%08x\n", hr); count = 0; - hr = IDWriteTextLayout_GetClusterMetrics(layout, clusters, sizeof(clusters)/sizeof(*clusters), &count); + hr = IDWriteTextLayout_GetClusterMetrics(layout, clusters, ARRAY_SIZE(clusters), &count); ok(hr == S_OK, "got 0x%08x\n", hr); if (lstrlenW(stringsW[i])) ok(count > 0, "got %u\n", count); @@ -4344,7 +4346,7 @@ static void test_pixelsnapping(void) ctxt.snapping_disabled = FALSE; - for (i = 0; i < sizeof(snapping_tests)/sizeof(snapping_tests[0]); i++) { + for (i = 0; i < ARRAY_SIZE(snapping_tests); i++) { struct snapping_test *ptr = &snapping_tests[i]; FLOAT expectedY; @@ -4361,7 +4363,7 @@ static void test_pixelsnapping(void) i, ctxt.originY, expectedY, baseline); /* gdicompat layout transform doesn't affect snapping */ - for (j = 0; j < sizeof(compattransforms)/sizeof(compattransforms[0]); j++) { + for (j = 0; j < ARRAY_SIZE(compattransforms); j++) { hr = IDWriteFactory_CreateGdiCompatibleTextLayout(factory, strW, 1, format, 500.0, 100.0, 1.0, &compattransforms[j], FALSE, &layout2); ok(hr == S_OK, "%d: got 0x%08x\n", i, hr); @@ -4403,7 +4405,7 @@ static void test_SetWordWrapping(void) v = IDWriteTextFormat_GetWordWrapping(format); ok(v == DWRITE_WORD_WRAPPING_WRAP, "got %d\n", v); - hr = IDWriteFactory_CreateTextLayout(factory, strW, sizeof(strW)/sizeof(WCHAR), format, 10.0f, 100.0f, &layout); + hr = IDWriteFactory_CreateTextLayout(factory, strW, ARRAY_SIZE(strW), format, 10.0f, 100.0f, &layout); ok(hr == S_OK, "got 0x%08x\n", hr); v = IDWriteTextLayout_GetWordWrapping(layout); @@ -4664,7 +4666,7 @@ if (font) { exists = FALSE; hr = IDWriteFont_GetInformationalStrings(font, DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES, &strings, &exists); ok(hr == S_OK && exists, "got 0x%08x, exists %d\n", hr, exists); - hr = IDWriteLocalizedStrings_GetString(strings, 0, buffW, sizeof(buffW)/sizeof(WCHAR)); + hr = IDWriteLocalizedStrings_GetString(strings, 0, buffW, ARRAY_SIZE(buffW)); ok(hr == S_OK, "got 0x%08x\n", hr); ok(!lstrcmpW(buffW, tahomaW), "%s\n", wine_dbgstr_w(buffW)); IDWriteLocalizedStrings_Release(strings); @@ -4685,7 +4687,7 @@ if (font) { exists = FALSE; hr = IDWriteFont_GetInformationalStrings(font, DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES, &strings, &exists); ok(hr == S_OK && exists, "got 0x%08x, exists %d\n", hr, exists); - hr = IDWriteLocalizedStrings_GetString(strings, 0, buffW, sizeof(buffW)/sizeof(WCHAR)); + hr = IDWriteLocalizedStrings_GetString(strings, 0, buffW, ARRAY_SIZE(buffW)); ok(hr == S_OK, "got 0x%08x\n", hr); todo_wine ok(lstrcmpW(buffW, tahomaW), "%s\n", wine_dbgstr_w(buffW)); @@ -5122,7 +5124,7 @@ static void test_SetUnderline(void) ok(hr == S_OK, "got 0x%08x\n", hr); count = 0; - hr = IDWriteTextLayout_GetClusterMetrics(layout, clusters, sizeof(clusters)/sizeof(clusters[0]), &count); + hr = IDWriteTextLayout_GetClusterMetrics(layout, clusters, ARRAY_SIZE(clusters), &count); ok(hr == S_OK, "got 0x%08x\n", hr); todo_wine ok(count == 3, "got %u\n", count); @@ -5133,7 +5135,7 @@ todo_wine ok(hr == S_OK, "got 0x%08x\n", hr); count = 0; - hr = IDWriteTextLayout_GetClusterMetrics(layout, clusters, sizeof(clusters)/sizeof(clusters[0]), &count); + hr = IDWriteTextLayout_GetClusterMetrics(layout, clusters, ARRAY_SIZE(clusters), &count); ok(hr == S_OK, "got 0x%08x\n", hr); todo_wine ok(count == 3, "got %u\n", count); @@ -5232,7 +5234,7 @@ todo_wine hr = IDWriteFontFamily_GetFamilyNames(family, &names); ok(hr == S_OK, "got 0x%08x\n", hr); - if (!(exists = get_enus_string(names, nameW, sizeof(nameW)/sizeof(nameW[0])))) { + if (!(exists = get_enus_string(names, nameW, ARRAY_SIZE(nameW)))) { IDWriteLocalFontFileLoader *localloader; IDWriteFontFileLoader *loader; IDWriteFontFile *file; @@ -5254,7 +5256,7 @@ todo_wine hr = IDWriteFontFile_GetReferenceKey(file, &key, &keysize); ok(hr == S_OK, "got 0x%08x\n", hr); - hr = IDWriteLocalFontFileLoader_GetFilePathFromKey(localloader, key, keysize, nameW, sizeof(nameW)/sizeof(*nameW)); + hr = IDWriteLocalFontFileLoader_GetFilePathFromKey(localloader, key, keysize, nameW, ARRAY_SIZE(nameW)); ok(hr == S_OK, "got 0x%08x\n", hr); skip("Failed to get English family name, font file %s\n", wine_dbgstr_w(nameW)); @@ -5481,7 +5483,7 @@ static void test_GetOverhangMetrics(void) hr = IDWriteFactory_CreateTextLayout(factory, strW, 1, format, 1000.0f, 1000.0f, &layout); ok(hr == S_OK, "Failed to create text layout, hr %x.\n", hr); - for (i = 0; i < sizeof(overhangs_tests)/sizeof(overhangs_tests[0]); i++) { + for (i = 0; i < ARRAY_SIZE(overhangs_tests); i++) { const struct overhangs_test *test = &overhangs_tests[i]; DWRITE_OVERHANG_METRICS overhang_metrics; DWRITE_TEXT_RANGE range = { 0, 1 }; -- 2.11.4.GIT