Nikolay Sivov : dwrite: Fix error code returned by GetFontFromFontFace().
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Feb 19 09:17:34 CST 2015
Module: wine
Branch: master
Commit: 5196be7706ae4189edb3b67cf441d7a1077539ce
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5196be7706ae4189edb3b67cf441d7a1077539ce
Author: Nikolay Sivov <nsivov at 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)
More information about the wine-cvs
mailing list