gdi32: Do not leak the hfont list (Valgrind).

Alexandre Julliard julliard at winehq.org
Fri Feb 18 10:18:24 CST 2011


Dmitry Timoshkov <dmitry at codeweavers.com> writes:

> ---
>  dlls/gdi32/freetype.c |   16 ++++++++--------
>  1 files changed, 8 insertions(+), 8 deletions(-)

It doesn't work:

../../../tools/runtest -q -P wine -M riched20.dll -T ../../.. -p riched20_test.exe.so editor.c && touch editor.ok
wine: Unhandled page fault on read access to 0x00000008 at address 0x68979799 (thread 0009), starting debugger...
Unhandled exception: page fault on read access to 0x00000008 in 32-bit code (0x68979799).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:68979799 ESP:0032e580 EBP:0032e5f8 EFLAGS:00010246(  R- --  I  Z- -P- )
 EAX:00000000 EBX:689aed9c ECX:00131178 EDX:0000de98
 ESI:00131168 EDI:689b2af8
Stack dump:
0x0032e580:  689b2ae0 7bc48c77 00000018 00000002
0x0032e590:  0032e5bc 0032e5a4 00000000 7bc35d41
0x0032e5a0:  00110014 4d430002 0013483c 00000004
0x0032e5b0:  00000000 00000000 0000de98 689aed9c
0x0032e5c0:  689b2b80 0000de98 689b2ae0 68986533
0x0032e5d0:  689b2b80 00000000 00000000 7bc9e92c
Backtrace:
=>0 0x68979799 WineEngDestroyFontInstance+0x69(handle=0xde98) [/home/julliard/wine/wine/dlls/gdi32/freetype.c:3906] in gdi32 (0x0032e618)
  1 0x6896ea72 FONT_DeleteObject+0x11(handle=0xde98) [/home/julliard/wine/wine/dlls/gdi32/font.c:611] in gdi32 (0x0032e678)
  2 0x68986e58 DeleteObject+0x247(obj=0xde98) [/home/julliard/wine/wine/dlls/gdi32/gdiobj.c:875] in gdi32 (0x0032e6b8)
  3 0x689756eb free_font+0x9a(font=<is not available>) [/home/julliard/wine/wine/dlls/gdi32/freetype.c:3099] in gdi32 (0x0032e6f8)
  4 0x68975694 free_font+0x43(font=<is not available>) [/home/julliard/wine/wine/dlls/gdi32/freetype.c:3091] in gdi32 (0x0032e778)
  5 0x689799de WineEngDestroyFontInstance+0x2ad(handle=0x7060) [/home/julliard/wine/wine/dlls/gdi32/freetype.c:3950] in gdi32 (0x0032e798)
  6 0x6896ea72 FONT_DeleteObject+0x11(handle=0x7060) [/home/julliard/wine/wine/dlls/gdi32/font.c:611] in gdi32 (0x0032e7f8)
  7 0x68986e58 DeleteObject+0x247(obj=0x7060) [/home/julliard/wine/wine/dlls/gdi32/gdiobj.c:875] in gdi32 (0x0032f128)
  8 0x68f35603 ME_HandleMessage+0x3ab2(editor=0x3328e8, msg=0x2, wParam=0, lParam=0, unicode=0, phresult=0x32f1cc) [/home/julliard/wine/wine/dlls/riched20/editor.c:2780] in riched20 (0x0032f1e8)
  9 0x68f3798c RichEditWndProc_common+0x18b(hWnd=0x620056, msg=<is not available>, wParam=0, lParam=0, unicode=0) [/home/julliard/wine/wine/dlls/riched20/editor.c:4491] in riched20 (0x0032f208)
  10 0x68f37de6 RichEditWndProcA+0x25(hWnd=0x620056, msg=0x2, wParam=0, lParam=0) [/home/julliard/wine/wine/dlls/riched20/editor.c:4516] in riched20 (0x0032f238)
  11 0x688b508a WINPROC_wrapper+0x19() in user32 (0x0032f288)
  12 0x688b6a1c call_window_proc+0x5b(hwnd=0x620056, msg=0x2, wp=0, lp=0, result=0x32f9cc, arg=0x68f37dc0) [/home/julliard/wine/wine/dlls/user32/winproc.c:242] in user32 (0x0032f918)
  13 0x688b5a3c WINPROC_CallProcWtoA+0x16b(callback=<is not available>, hwnd=<is not available>, msg=0x2, wParam=0, lParam=0, result=0x32f9cc, arg=0x68f37dc0) [/home/julliard/wine/wine/dlls/user32/winproc.c:857] in user32 (0x0032f968)
  14 0x688b7e26 WINPROC_call_window+0x1b5(hwnd=0x620056, msg=0x2, wParam=0, lParam=0, result=0x32f9cc, unicode=0x1, mapping=1753936523) [/home/julliard/wine/wine/dlls/user32/winproc.c:901] in user32 (0x0032f9d8)
  15 0x6887a491 call_window_proc+0x90(hwnd=<is not available>, msg=0x2, wparam=0, lparam=0, unicode=0x1, same_thread=0x1, mapping=1753936523) [/home/julliard/wine/wine/dlls/user32/message.c:2201] in user32 (0x0032fa58)
  16 0x6887e906 send_message+0x1f5(info=0x32fa70, res_ptr=0x32fa9c, unicode=0x1) [/home/julliard/wine/wine/dlls/user32/message.c:3042] in user32 (0x0032faa8)
  17 0x6887edac SendMessageW+0x4b(hwnd=0x620056, msg=0x2, wparam=0, lparam=0) [/home/julliard/wine/wine/dlls/user32/message.c:3165] in user32 (0x0032fb18)
  18 0x688a974b WIN_SendDestroyMsg+0x6a(hwnd=0x620056) [/home/julliard/wine/wine/dlls/user32/win.c:1603] in user32 (0x0032fb68)
  19 0x688a9efa DestroyWindow+0x259(hwnd=0x620056) [/home/julliard/wine/wine/dlls/user32/win.c:1706] in user32 (0x0032fbe8)
  20 0x686954dc test_zoom+0xd4b() [/home/julliard/wine/wine/dlls/riched20/tests/editor.c:6769] in riched20_test (0x0032fd38)
  21 0x6869b7ea func_editor+0x4959() [/home/julliard/wine/wine/dlls/riched20/tests/editor.c:7152] in riched20_test (0x0032fd88)
  22 0x6869ddde run_test+0x15d(name=<is not available>) [/home/julliard/wine/wine/dlls/riched20/tests/../../../include/wine/test.h:556] in riched20_test (0x0032fe48)
  23 0x6869dfd7 main+0x156(argc=<couldn't compute location>, argv=<couldn't compute location>) [/home/julliard/wine/wine/dlls/riched20/tests/../../../include/wine/test.h:624] in riched20_test (0x0032fe90)
  24 0x6869eb5c __wine_spec_exe_entry+0x7b(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in riched20_test (0x0032fea8)
  25 0x7b858fec call_process_entry+0xb() in kernel32 (0x0032fee8)
  26 0x7b85b85b start_process+0x5a(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/kernel32/process.c:1086] in kernel32 (0x0032fef8)
  27 0x7bc73358 call_thread_func+0xb() in ntdll (0x0032ffc8)
  28 0x7bc73530 call_thread_entry_point+0x6f(entry=0x7b85b800, arg=0x7ffdf000) [/home/julliard/wine/wine/dlls/ntdll/signal_i386.c:2499] in ntdll (0x0032ffe8)
  29 0x7bc4deca start_process+0x29(kernel_start=0x7b85b800) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2606] in ntdll (0x00000000)
0x68979799 WineEngDestroyFontInstance+0x69 [/home/julliard/wine/wine/dlls/gdi32/freetype.c:3906] in gdi32: cmpl	%edx,0x8(%eax)
3906	        if(hflist->hfont == handle)

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list