Module: wine Branch: master Commit: bda5f5700863c85b114233ccb212f41a49eed25f URL: http://source.winehq.org/git/wine.git/?a=commit;h=bda5f5700863c85b114233ccb2...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Thu May 5 14:35:23 2016 +0300
dwrite: Fix reference equality condition.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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 */