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