winex11.drv: In the case requested glyphs do not present in the font fail gracefully instead of asserting

Dmitry Timoshkov dmitry at codeweavers.com
Sun Mar 18 09:09:34 CDT 2007


Hello,

this patch should fix the problem reported in the bug 7777.

Changelog:
    winex11.drv: In the case requested glyphs do not present in the font
    fail gracefully instead of asserting.

---
 dlls/gdi32/freetype.c      |    2 +-
 dlls/winex11.drv/xrender.c |    9 +++++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 4aa2c20..1f90a87 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -3398,7 +3398,7 @@ DWORD WineEngGetGlyphOutline(GdiFont *font, UINT glyph, UINT format,
     err = pFT_Load_Glyph(ft_face, glyph_index, load_flags);
 
     if(err) {
-        FIXME("FT_Load_Glyph on index %x returns %d\n", glyph_index, err);
+        WARN("FT_Load_Glyph on index %x returns %d\n", glyph_index, err);
 	return GDI_ERROR;
     }
 	
diff --git a/dlls/winex11.drv/xrender.c b/dlls/winex11.drv/xrender.c
index 9c5e274..66b3dd4 100644
--- a/dlls/winex11.drv/xrender.c
+++ b/dlls/winex11.drv/xrender.c
@@ -655,7 +655,7 @@ static BOOL UploadGlyph(X11DRV_PDEVICE *physDev, int glyph, AA_Type format)
                                       NULL);
         }
         if(buflen == GDI_ERROR) {
-            ERR("GetGlyphOutlineW failed\n");
+            WARN("GetGlyphOutlineW failed\n");
             return FALSE;
         }
         TRACE("Turning off antialiasing for this monochrome font\n");
@@ -1258,7 +1258,12 @@ BOOL X11DRV_XRender_ExtTextOut( X11DRV_PDEVICE *physDev, INT x, INT y, UINT flag
 	    UploadGlyph(physDev, wstr[idx], antialias);
 	}
     }
-    assert(formatEntry);
+    if (!formatEntry)
+    {
+        WARN("could not upload requested glyphs\n");
+        LeaveCriticalSection(&xrender_cs);
+        goto done_unlock;
+    }
 
     TRACE("Writing %s at %d,%d\n", debugstr_wn(wstr,count),
           physDev->dc_rect.left + x, physDev->dc_rect.top + y);
-- 
1.5.0.2






More information about the wine-patches mailing list