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

oldstable
Dmitry Timoshkov 2007-03-18 22:09:34 +08:00 committed by Alexandre Julliard
parent 637a6116e2
commit 520aa9f548
2 changed files with 8 additions and 3 deletions

View File

@ -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;
}

View File

@ -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);