[PATCH 4/6] dwrite: Trace QueryInterface fontface calls on failure (Coverity)

Nikolay Sivov nsivov at codeweavers.com
Wed Apr 19 05:53:26 CDT 2017


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/dwrite/font.c | 4 +++-
 dlls/dwrite/main.c | 4 +++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c
index b6651611b6..c1b2286b56 100644
--- a/dlls/dwrite/font.c
+++ b/dlls/dwrite/font.c
@@ -5135,6 +5135,7 @@ HRESULT create_glyphrunanalysis(const struct glyphrunanalysis_desc *desc, IDWrit
     IDWriteFontFace1 *fontface1;
     D2D_POINT_2F origin;
     FLOAT rtl_factor;
+    HRESULT hr;
     UINT32 i;
 
     *ret = NULL;
@@ -5196,7 +5197,8 @@ HRESULT create_glyphrunanalysis(const struct glyphrunanalysis_desc *desc, IDWrit
     memcpy(analysis->glyphs, desc->run->glyphIndices, desc->run->glyphCount*sizeof(*desc->run->glyphIndices));
 
     IDWriteFontFace_GetMetrics(desc->run->fontFace, &metrics);
-    IDWriteFontFace_QueryInterface(desc->run->fontFace, &IID_IDWriteFontFace1, (void **)&fontface1);
+    if (FAILED(hr = IDWriteFontFace_QueryInterface(desc->run->fontFace, &IID_IDWriteFontFace1, (void **)&fontface1)))
+        WARN("Failed to get IDWriteFontFace1, %#x.\n", hr);
 
     origin.x = desc->origin_x * desc->ppdip;
     origin.y = desc->origin_y * desc->ppdip;
diff --git a/dlls/dwrite/main.c b/dlls/dwrite/main.c
index c17bb5a3a7..73fcb515ae 100644
--- a/dlls/dwrite/main.c
+++ b/dlls/dwrite/main.c
@@ -1449,13 +1449,15 @@ static HRESULT compute_glyph_origins(DWRITE_GLYPH_RUN const *run, DWRITE_MEASURI
     IDWriteFontFace1 *fontface1 = NULL;
     DWRITE_FONT_METRICS metrics;
     FLOAT rtl_factor;
+    HRESULT hr;
     UINT32 i;
 
     rtl_factor = run->bidiLevel & 1 ? -1.0f : 1.0f;
 
     if (run->fontFace) {
         IDWriteFontFace_GetMetrics(run->fontFace, &metrics);
-        IDWriteFontFace_QueryInterface(run->fontFace, &IID_IDWriteFontFace1, (void **)&fontface1);
+        if (FAILED(hr = IDWriteFontFace_QueryInterface(run->fontFace, &IID_IDWriteFontFace1, (void **)&fontface1)))
+            WARN("Failed to get IDWriteFontFace1, %#x.\n", hr);
     }
 
     for (i = 0; i < run->glyphCount; i++) {
-- 
2.11.0




More information about the wine-patches mailing list