Nikolay Sivov : dwrite: Fix reference equality condition.
Module: wine Branch: master Commit: bda5f5700863c85b114233ccb212f41a49eed25f URL: http://source.winehq.org/git/wine.git/?a=commit;h=bda5f5700863c85b114233ccb2... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Thu May 5 14:35:23 2016 +0300 dwrite: Fix reference equality condition. Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dwrite/font.c | 4 +++- dlls/dwrite/tests/font.c | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index a890250..0edeebf 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -5416,7 +5416,9 @@ static BOOL WINAPI fontfacereference_Equals(IDWriteFontFaceReference *iface, IDW if (FAILED(IDWriteFontFaceReference_GetFontFile(ref, &file))) return FALSE; - ret = is_same_fontfile(This->file, file); + ret = is_same_fontfile(This->file, file) && + This->index == IDWriteFontFaceReference_GetFontFaceIndex(ref) && + This->simulations == IDWriteFontFaceReference_GetSimulations(ref); IDWriteFontFile_Release(file); return ret; diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index 99572ed..affdfda 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -5853,6 +5853,7 @@ static void test_CreateFontFaceReference(void) UINT32 index; WCHAR *path; HRESULT hr; + BOOL ret; factory = create_factory(); @@ -5923,7 +5924,23 @@ todo_wine IDWriteFontFace3_Release(fontface); IDWriteFontFace3_Release(fontface1); + /* reference equality */ + ret = IDWriteFontFaceReference_Equals(ref, ref1); + ok(ret, "got %d\n", ret); + IDWriteFontFaceReference_Release(ref1); + + hr = IDWriteFactory3_CreateFontFaceReference(factory3, path, NULL, 1, DWRITE_FONT_SIMULATIONS_NONE, &ref1); + ok(hr == S_OK, "got 0x%08x\n", hr); + ret = IDWriteFontFaceReference_Equals(ref, ref1); + ok(!ret, "got %d\n", ret); IDWriteFontFaceReference_Release(ref1); + + hr = IDWriteFactory3_CreateFontFaceReference(factory3, path, NULL, 0, DWRITE_FONT_SIMULATIONS_BOLD, &ref1); + ok(hr == S_OK, "got 0x%08x\n", hr); + ret = IDWriteFontFaceReference_Equals(ref, ref1); + ok(!ret, "got %d\n", ret); + IDWriteFontFaceReference_Release(ref1); + IDWriteFontFaceReference_Release(ref); /* create reference from a file */
participants (1)
-
Alexandre Julliard