http://bugs.winehq.org/show_bug.cgi?id=20557
--- Comment #3 from Eric Pouech eric.pouech@orange.fr 2012-01-28 06:13:23 CST --- Created attachment 38577 --> http://bugs.winehq.org/attachment.cgi?id=38577 hack
as a side note, I also run into this problem.
I turns out that bug happens when some glyphs are not present in font while calling ExtTextOut in winex11.drv.
The lookup code in UploadGlyph when the desired glyph isn't present tries to load default chars, which may change the format, and then formatEntry pointer. If some glyphs have been already loaded (in previous format), their information could be no longer present through formatEntry->gis.
In other words, if one changes format while loading all glyphs from ExtTextOut, it should check that all previous chars (from string to print in ExtTextOut) are present/loaded in newest format... I'll leave the correct fix to people familiar with the details of the code (I've attached a hack, but the fix isn't the proper one, as we're not sure that 0 (as a char has been effectively loaded)
A+