[PATCH 1/2] gdi32: Clip font glyphs to fit within text metrics. (try 2)

Alexandre Julliard julliard at winehq.org
Mon Apr 29 09:20:15 CDT 2013


Sam Edwards <cfsworks at gmail.com> writes:

> On 04/26/2013 08:17 AM, Michael Stefaniuc wrote:
>> Sam, look at the size of the address. It is the 64bit build that crashes.
>>
>> bye
>>     michael
>
> Michael: Thanks for the advice; I noticed that too and have been
> running both 64-bit and 32-bit tests. (Although, it's perplexing to me
> that a change like this would affect 64-bit and not 32-bit.)
>
> AJ: I can't reproduce the crash at all. I spoke with Marcus on
> #winehackers last night and he found no test failures with the patch
> either. Could you provide a backtrace on the crash, or at least run
> the failing test with WINETEST_REPORT_SUCCESS=1 to give me more
> information on where/how it's dying?

Well, there was no backtrace since winedbg crashes. Fortunately gdb
works:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff550f6b7 in get_glyph_outline (incoming_font=<optimized out>, glyph=<optimized out>, format=24, lpgm=0x20, abc=0x22c7d0, buflen=288, buf=0x538c4, lpmat=0x7ffff5535160) at ../../../wine/dlls/gdi32/freetype.c:6388
6388	                                 ((unsigned int)src[hmul * x + rgb_interval * 2] <<  0) |
(gdb) bt
#0  0x00007ffff550f6b7 in get_glyph_outline (incoming_font=<optimized out>, glyph=<optimized out>, format=24, lpgm=0x20, abc=0x22c7d0, buflen=288, buf=0x538c4, lpmat=0x7ffff5535160) at ../../../wine/dlls/gdi32/freetype.c:6388
#1  0x00007ffff550fd4e in freetype_GetGlyphOutline (dev=0x40df0, glyph=<optimized out>, format=<optimized out>, lpgm=0x22c9f0, buflen=288, buf=0x538c4, lpmat=0x7ffff5535160) at ../../../wine/dlls/gdi32/freetype.c:7132
#2  0x00007ffff54fcd84 in GetGlyphOutlineW (hdc=<optimized out>, uChar=103, fuFormat=17, lpgm=0x22c9f0, cbBuffer=288, lpBuffer=0x538c4, lpmat2=0x7ffff5535160) at ../../../wine/dlls/gdi32/font.c:2813
#3  0x00007ffff54c97b5 in render_string (hdc=0x490031, dib=<optimized out>, font=0x43cb0, x=95, y=11, flags=12288, str=0x51b70, count=13, dx=0x53470, clipped_rects=0x22cbb0, bounds=0x22cba0) at ../../../wine/dlls/gdi32/dibdrv/graphics.c:707
#4  0x00007ffff54cab68 in dibdrv_ExtTextOut (dev=0x4bbe0, x=51, y=11, flags=12288, rect=<optimized out>, str=0x51b70, count=13, dx=0x53470) at ../../../wine/dlls/gdi32/dibdrv/graphics.c:859
#5  0x00007ffff54c76c0 in windrv_ExtTextOut (dev=<optimized out>, x=51, y=11, flags=12288, rect=<optimized out>, str=<optimized out>, count=13, dx=0x53470) at ../../../wine/dlls/gdi32/dibdrv/dc.c:738
#6  0x00007ffff54fb5d6 in ExtTextOutW (hdc=0x490031, x=51, y=11, flags=12288, lprect=0x22d310, str=0x51b70, count=13, lpDx=0x533f0) at ../../../wine/dlls/gdi32/font.c:2439
#7  0x00007ffff0fbfe73 in ScriptTextOut (hdc=<optimized out>, psc=<optimized out>, x=51, y=0, fuOptions=<optimized out>, lprc=0x22d310, psa=0x47cb4, pwcReserved=0x0, iReserved=0, pwGlyphs=0x51b70, cGlyphs=13, piAdvance=0x51bd0, piJustify=0x0, 
    pGoffset=0x51cd0) at ../../../wine/dlls/usp10/usp10.c:3318
#8  0x00007ffff0fc03e1 in SS_ItemOut (ssa=0x45a00, iX=2, iY=0, iItem=<optimized out>, cStart=<optimized out>, cEnd=<optimized out>, uOptions=0, prc=0x45928, fSelected=0, fDisabled=0) at ../../../wine/dlls/usp10/usp10.c:2147
#9  0x00007ffff0fc0898 in ScriptStringOut (ssa=0x45a00, iX=2, iY=0, uOptions=0, prc=0x45928, iMinSel=0, iMaxSel=0, fDisabled=0) at ../../../wine/dlls/usp10/usp10.c:2211
#10 0x00007ffff584c0c6 in EDIT_PaintLine (es=<optimized out>, dc=0x490031, line=0, rev=<optimized out>) at ../../../wine/dlls/user32/edit.c:2289


-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list