Module: wine Branch: master Commit: 5196be7706ae4189edb3b67cf441d7a1077539ce URL: http://source.winehq.org/git/wine.git/?a=commit;h=5196be7706ae4189edb3b67cf4...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Feb 18 22:46:10 2015 +0300
dwrite: Fix error code returned by GetFontFromFontFace().
---
dlls/dwrite/font.c | 2 +- dlls/dwrite/tests/font.c | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index e3480ec..527fa5d 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -1514,7 +1514,7 @@ static HRESULT WINAPI dwritefontcollection_GetFontFromFontFace(IDWriteFontCollec }
if (!found_font) - return E_INVALIDARG; + return DWRITE_E_NOFONT;
hr = create_fontfamily(found_family, iface, &family); if (FAILED(hr)) diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index ca31f29..e00e788 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -2028,6 +2028,7 @@ static void test_GetFontFromFontFace(void) IDWriteFont *font, *font2, *font3; IDWriteFontFamily *family; IDWriteFactory *factory; + IDWriteFontFile *file; HRESULT hr;
factory = create_factory(); @@ -2064,14 +2065,32 @@ static void test_GetFontFromFontFace(void) ok(hr == S_OK, "got 0x%08x\n", hr); ok(fontface2 == fontface, "got %p, %p\n", fontface2, fontface); IDWriteFontFace_Release(fontface2); + IDWriteFontFace_Release(fontface); + IDWriteFont_Release(font3); + IDWriteFactory_Release(factory); + + /* fontface that wasn't created from this collection */ + factory = create_factory(); + create_testfontfile(test_fontfile); + + hr = IDWriteFactory_CreateFontFileReference(factory, test_fontfile, NULL, &file); + ok(hr == S_OK, "got 0x%08x\n",hr); + + hr = IDWriteFactory_CreateFontFace(factory, DWRITE_FONT_FACE_TYPE_TRUETYPE, 1, &file, 0, DWRITE_FONT_SIMULATIONS_NONE, &fontface); + ok(hr == S_OK, "got 0x%08x\n", hr); + IDWriteFontFile_Release(file); + + hr = IDWriteFontCollection_GetFontFromFontFace(collection, fontface, &font3); + ok(hr == DWRITE_E_NOFONT, "got 0x%08x\n", hr); + ok(font3 == NULL, "got %p\n", font3); + IDWriteFontFace_Release(fontface);
IDWriteFont_Release(font); IDWriteFont_Release(font2); - IDWriteFont_Release(font3); - IDWriteFontFace_Release(fontface); IDWriteFontFamily_Release(family); IDWriteFontCollection_Release(collection); IDWriteFactory_Release(factory); + DeleteFileW(test_fontfile); }
static IDWriteFont *get_tahoma_instance(IDWriteFactory *factory, DWRITE_FONT_STYLE style)