(resend)[1/2]usp10: cache OUTLINETEXTMETRICW instead of just TEXTMETRICW

Alexandre Julliard julliard at winehq.org
Mon Jul 30 11:35:31 CDT 2012


Aric Stewart <aric at codeweavers.com> writes:

> ---
>  dlls/usp10/usp10.c          |   28 +++++++++++++++++-----------
>  dlls/usp10/usp10_internal.h |    2 +-
>  2 files changed, 18 insertions(+), 12 deletions(-)

It doesn't work here:

../../../tools/runtest -q -P wine -M comctl32.dll -T ../../.. -p comctl32_test.exe.so ipaddress.c && touch ipaddress.ok
wine: Unhandled page fault on read access to 0x0000005c at address 0x555aef2c (thread 002c), starting debugger...
Unhandled exception: page fault on read access to 0x0000005c in 32-bit code (0x555aef2c).
Register dump:
 CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
 EIP:555aef2c ESP:0032efa0 EBP:0032efe8 EFLAGS:00010206(  R- --  I   - -P- )
 EAX:00131190 EBX:555c0bb4 ECX:00131190 EDX:00000000
 ESI:00131140 EDI:00000000
Stack dump:
0x0032efa0:  00110000 00000000 00000008 686def04
0x0032efb0:  6872a969 687735a8 0032f078 00000001
0x0032efc0:  00000000 0000007c 027f0c7f 687735a8
0x0032efd0:  00130ed8 00000000 555aee8b 687735a8
0x0032efe0:  00130ed8 00000000 0032f008 686d2fd9
0x0032eff0:  00131140 00000000 00000000 687735a8
Backtrace:
=>0 0x555aef2c ScriptString_pSize+0xac(ssa=0x131140) [/home/julliard/wine/wine/dlls/usp10/usp10.c:3496] in usp10 (0x0032efe8)
  1 0x686d2fd9 EDIT_CalcLineWidth_SL+0x38(es=0x130ed8) [/home/julliard/wine/wine/dlls/user32/edit.c:821] in user32 (0x0032f008)
  2 0x686d787f EDIT_EM_ReplaceSel+0x79e(es=<internal error>, can_undo=0, lpsz_replace="1", send_update=0, honor_limit=0) [/home/julliard/wine/wine/dlls/user32/edit.c:2655] in user32 (0x0032f098)
  3 0x686db93c EditWndProc_common+0x256b(hwnd=0x50026, msg=0xc, wParam=0, lParam=0x32f5c4, unicode=0x1) [/home/julliard/wine/wine/dlls/user32/edit.c:3876] in user32 (0x0032f128)
  4 0x6873b60b EditWndProcW+0x3a(hwnd=0x50026, msg=0xc, wParam=0, lParam=0x32f5c4) [/home/julliard/wine/wine/dlls/user32/winproc.c:1081] in user32 (0x0032f158)
  5 0x6873b42a WINPROC_wrapper+0x19() in user32 (0x0032f188)
  6 0x6873bb7c call_window_proc+0x5b(hwnd=0x50026, msg=0xc, wp=0, lp=0x32f5c4, result=0x32f20c, arg=0x6873b5d0) [/home/julliard/wine/wine/dlls/user32/winproc.c:242] in user32 (0x0032f1d8)
  7 0x6873e5ad CallWindowProcW+0x5c(func=0x6873b5d0, hwnd=0x50026, msg=0xc, wParam=0, lParam=0x32f5c4) [/home/julliard/wine/wine/dlls/user32/winproc.c:980] in user32 (0x0032f228)
fixme:dbghelp_dwarf:compute_location Only supporting one breg (edi/24 -> esi/23)
  8 0x685c1cf5 IPADDRESS_SubclassProc+0xc4(hwnd=0x50026, uMsg=0xc, wParam=0, lParam=0x32f5c4) [/home/julliard/wine/wine/dlls/comctl32/ipaddress.c:555] in comctl32 (0x0032f2a8)
  9 0x6873b42a WINPROC_wrapper+0x19() in user32 (0x0032f2d8)
  10 0x6873bb7c call_window_proc+0x5b(hwnd=0x50026, msg=0xc, wp=0, lp=0x32f5c4, result=0x32f3a8, arg=0x685c1c30) [/home/julliard/wine/wine/dlls/user32/winproc.c:242] in user32 (0x0032f328)
  11 0x6873e328 WINPROC_call_window+0x107(hwnd=0x50026, msg=0xc, wParam=0, lParam=0x32f5c4, result=0x32f3a8, unicode=0x1, mapping=1750868266) [/home/julliard/wine/wine/dlls/user32/winproc.c:908] in user32 (0x0032f378)
  12 0x686fe88d call_window_proc+0x8c(hwnd=0x50026, msg=0xc, wparam=0, lparam=0x32f5c4, unicode=0x1, same_thread=0x1, mapping=1750868266) [/home/julliard/wine/wine/dlls/user32/message.c:2211] in user32 (0x0032f3d8)
  13 0x6870557e send_message+0x20d(info=0x32f464, res_ptr=0x32f460, unicode=0x1) [/home/julliard/wine/wine/dlls/user32/message.c:3084] in user32 (0x0032f448)
  14 0x687059ec SendMessageW+0x4b(hwnd=0x50026, msg=0xc, wparam=0, lparam=0x32f5c4) [/home/julliard/wine/wine/dlls/user32/message.c:3278] in user32 (0x0032f498)
  15 0x6872d43b SetWindowTextW+0x6a(hwnd=0x50026, lpString="1") [/home/julliard/wine/wine/dlls/user32/win.c:2592] in user32 (0x0032f4c8)
  16 0x685c2b7a IPADDRESS_WindowProc+0xaf9(hwnd=0xc0060, uMsg=0x465, wParam=0, lParam=0x7f000001) [/home/julliard/wine/wine/dlls/comctl32/ipaddress.c:365] in comctl32 (0x0032f638)
  17 0x6873b42a WINPROC_wrapper+0x19() in user32 (0x0032f668)
  18 0x6873bb7c call_window_proc+0x5b(hwnd=0xc0060, msg=0x465, wp=0, lp=0x7f000001, result=0x32fbf8, arg=0x685c2080) [/home/julliard/wine/wine/dlls/user32/winproc.c:242] in user32 (0x0032f6b8)
  19 0x6873d210 WINPROC_CallProcAtoW+0xaf(callback=0x6873bb20, hwnd=0xc0060, msg=0x465, wParam=0, lParam=0x7f000001, result=0x32fbf8, arg=0x685c2080, mapping=WMCHAR_MAP_SENDMESSAGE) [/home/julliard/wine/wine/dlls/user32/winproc.c:502] in user32 (0x0032fb78)
  20 0x6873e39b WINPROC_call_window+0x17a(hwnd=0xc0060, msg=0x465, wParam=0, lParam=0x7f000001, result=0x32fbf8, unicode=0, mapping=WMCHAR_MAP_SENDMESSAGE) [/home/julliard/wine/wine/dlls/user32/winproc.c:910] in user32 (0x0032fbc8)
  21 0x686fe88d call_window_proc+0x8c(hwnd=0xc0060, msg=0x465, wparam=0, lparam=0x7f000001, unicode=0, same_thread=0x1, mapping=WMCHAR_MAP_SENDMESSAGE) [/home/julliard/wine/wine/dlls/user32/message.c:2211] in user32 (0x0032fc28)
  22 0x6870557e send_message+0x20d(info=0x32fcb4, res_ptr=0x32fcb0, unicode=0) [/home/julliard/wine/wine/dlls/user32/message.c:3084] in user32 (0x0032fc98)
  23 0x68705993 SendMessageA+0x52(hwnd=0xc0060, msg=0x465, wparam=0, lparam=0x7f000001) [/home/julliard/wine/wine/dlls/user32/message.c:3300] in user32 (0x0032fce8)
  24 0x684f4ca3 func_ipaddress+0x1a2() [/home/julliard/wine/wine/dlls/comctl32/tests/ipaddress.c:56] in comctl32_test (0x0032fd58)
  25 0x684d8807 main+0x386(argc=<couldn't compute location>, argv=<couldn't compute location>) [/home/julliard/wine/wine/dlls/comctl32/tests/../../../include/wine/test.h:557] in comctl32_test (0x0032fe28)
  26 0x6856ae35 __wine_spec_exe_entry+0x74(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in comctl32_test (0x0032fe70)
  27 0x7b85c9fc call_process_entry+0xb() in kernel32 (0x0032fe88)
  28 0x7b85dbcf start_process+0x5e(peb=0x7ffdf000) [/home/julliard/wine/wine/dlls/kernel32/process.c:1083] in kernel32 (0x0032fec8)
  29 0x7bc76ed0 call_thread_func_wrapper+0xb() in ntdll (0x0032fed8)
  30 0x7bc79c0d call_thread_func+0x7c(entry=0x7b85db70, arg=0x7ffdf000, frame=0x32ffc8) [/home/julliard/wine/wine/dlls/ntdll/signal_i386.c:2522] in ntdll (0x0032ffa8)
  31 0x7bc76eae call_thread_entry_point+0x11() in ntdll (0x0032ffc8)
  32 0x7bc4ee5e start_process+0x1d(kernel_start=0x7b85db70) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2653] in ntdll (0x0032ffe8)
  33 0x6802947d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
  34 0x6802953b wine_switch_to_stack+0x2a(func=0x7bc4ee40, arg=0x7b85db70, stack=0x330000) [/home/julliard/wine/wine/libs/wine/port.c:59] in libwine.so.1 (0xffb4dc78)
  35 0x7bc547e8 LdrInitializeThunk+0x3b7(kernel_start=0x7b85db70, unknown2=0, unknown3=0, unknown4=0) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2709] in ntdll (0xffb4dce8)
  36 0x7b863cd8 __wine_kernel_init+0xbb7() [/home/julliard/wine/wine/dlls/kernel32/process.c:1255] in kernel32 (0xffb4ebe8)
  37 0x7bc54e63 __wine_process_init+0x182() [/home/julliard/wine/wine/dlls/ntdll/loader.c:2918] in ntdll (0xffb4ec68)
  38 0x680270c2 wine_init+0x2a1(argc=0x3, argv=0xffb4f1b4, error="", error_size=0x400) [/home/julliard/wine/wine/libs/wine/loader.c:831] in libwine.so.1 (0xffb4ecc8)
  39 0x7bf00ebb main+0x7a(argc=0x3, argv=0xffb4f1b4) [/home/julliard/wine/wine/loader/main.c:230] in <wine-loader> (0xffb4f108)
  40 0x681c0e46 __libc_start_main+0xe5() in libc.so.6 (0xffb4f188)
0x555aef2c ScriptString_pSize+0xac [/home/julliard/wine/wine/dlls/usp10/usp10.c:3496] in usp10: movl	0x5c(%edx),%edx
3496	        analysis->sz->cy = analysis->glyphs[0].sc->tm->otmTextMetrics.tmHeight;

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list