Nikolay Sivov : dwrite: Added parameter check for registering/ unregistering collection loaders.
Module: wine Branch: master Commit: 28e9b3f42121a3828717d72da7c77a14301273b8 URL: http://source.winehq.org/git/wine.git/?a=commit;h=28e9b3f42121a3828717d72da7... Author: Nikolay Sivov <nsivov(a)codeweavers.com> Date: Wed Oct 8 14:49:12 2014 +0400 dwrite: Added parameter check for registering/unregistering collection loaders. --- dlls/dwrite/main.c | 10 ++++++++-- dlls/dwrite/tests/font.c | 6 ++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/dlls/dwrite/main.c b/dlls/dwrite/main.c index 033e89a..0379feb 100644 --- a/dlls/dwrite/main.c +++ b/dlls/dwrite/main.c @@ -491,11 +491,14 @@ static HRESULT WINAPI dwritefactory_CreateCustomFontCollection(IDWriteFactory *i static HRESULT WINAPI dwritefactory_RegisterFontCollectionLoader(IDWriteFactory *iface, IDWriteFontCollectionLoader *loader) { - int i; struct dwritefactory *This = impl_from_IDWriteFactory(iface); + int i; TRACE("(%p)->(%p)\n", This, loader); + if (!loader) + return E_INVALIDARG; + for (i = 0; i < This->loader_count; i++) if (This->loaders[i] == loader) return DWRITE_E_ALREADYREGISTERED; @@ -527,11 +530,14 @@ static HRESULT WINAPI dwritefactory_RegisterFontCollectionLoader(IDWriteFactory static HRESULT WINAPI dwritefactory_UnregisterFontCollectionLoader(IDWriteFactory *iface, IDWriteFontCollectionLoader *loader) { - int i; struct dwritefactory *This = impl_from_IDWriteFactory(iface); + int i; TRACE("(%p)->(%p)\n", This, loader); + if (!loader) + return E_INVALIDARG; + for (i = 0; i < This->loader_count; i++) if (This->loaders[i] == loader) break; if (i == This->loader_count) diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index 945bfbf..efe3743 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -855,6 +855,12 @@ static void test_CustomFontCollection(void) IDWriteFontCollectionLoader collection2 = { &dwritefontcollectionloadervtbl }; HRESULT hr; + hr = IDWriteFactory_RegisterFontCollectionLoader(factory, NULL); + ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); + + hr = IDWriteFactory_UnregisterFontCollectionLoader(factory, NULL); + ok(hr == E_INVALIDARG, "got 0x%08x\n", hr); + hr = IDWriteFactory_RegisterFontCollectionLoader(factory, &collection); ok(hr == S_OK, "got 0x%08x\n", hr); hr = IDWriteFactory_RegisterFontCollectionLoader(factory, &collection2);
participants (1)
-
Alexandre Julliard