Nikolay Sivov : dwrite: Add a helper to return font list item.

Alexandre Julliard julliard at winehq.org
Fri Mar 12 14:36:16 CST 2021


Module: wine
Branch: master
Commit: 2bc442aa1beb24a48ea4f3be44c01374dc439d41
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=2bc442aa1beb24a48ea4f3be44c01374dc439d41

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Mar 12 15:07:01 2021 +0300

dwrite: Add a helper to return font list item.

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/dwrite/font.c | 28 +++++++++++++++++-----------
 1 file changed, 17 insertions(+), 11 deletions(-)

diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c
index cd90a9c051c..14be1b9fc1b 100644
--- a/dlls/dwrite/font.c
+++ b/dlls/dwrite/font.c
@@ -2336,12 +2336,9 @@ static DWRITE_LOCALITY WINAPI dwritefontlist1_GetFontLocality(IDWriteFontList2 *
     return DWRITE_LOCALITY_LOCAL;
 }
 
-static HRESULT WINAPI dwritefontlist1_GetFont(IDWriteFontList2 *iface, UINT32 index, IDWriteFont3 **font)
+static HRESULT fontlist_get_font(const struct dwrite_fontlist *fontlist, unsigned int index,
+        IDWriteFont3 **font)
 {
-    struct dwrite_fontlist *fontlist = impl_from_IDWriteFontList2(iface);
-
-    TRACE("%p, %u, %p.\n", iface, index, font);
-
     *font = NULL;
 
     if (fontlist->font_count == 0)
@@ -2353,9 +2350,19 @@ static HRESULT WINAPI dwritefontlist1_GetFont(IDWriteFontList2 *iface, UINT32 in
     return create_font(fontlist->family, index, font);
 }
 
+static HRESULT WINAPI dwritefontlist1_GetFont(IDWriteFontList2 *iface, UINT32 index, IDWriteFont3 **font)
+{
+    struct dwrite_fontlist *fontlist = impl_from_IDWriteFontList2(iface);
+
+    TRACE("%p, %u, %p.\n", iface, index, font);
+
+    return fontlist_get_font(fontlist, index, font);
+}
+
 static HRESULT WINAPI dwritefontlist1_GetFontFaceReference(IDWriteFontList2 *iface, UINT32 index,
     IDWriteFontFaceReference **reference)
 {
+    struct dwrite_fontlist *fontlist = impl_from_IDWriteFontList2(iface);
     IDWriteFont3 *font;
     HRESULT hr;
 
@@ -2363,12 +2370,11 @@ static HRESULT WINAPI dwritefontlist1_GetFontFaceReference(IDWriteFontList2 *ifa
 
     *reference = NULL;
 
-    hr = IDWriteFontList2_GetFont(iface, index, &font);
-    if (FAILED(hr))
-        return hr;
-
-    hr = IDWriteFont3_GetFontFaceReference(font, reference);
-    IDWriteFont3_Release(font);
+    if (SUCCEEDED(hr = fontlist_get_font(fontlist, index, &font)))
+    {
+        hr = IDWriteFont3_GetFontFaceReference(font, reference);
+        IDWriteFont3_Release(font);
+    }
 
     return hr;
 }




More information about the wine-cvs mailing list