Module: wine Branch: master Commit: 520aa9f54848dde87a11b3adee223e3779062619 URL: http://source.winehq.org/git/wine.git/?a=commit;h=520aa9f54848dde87a11b3adee...
Author: Dmitry Timoshkov dmitry@codeweavers.com Date: Sun Mar 18 22:09:34 2007 +0800
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);