Nikolay Sivov <nsivov(a)codeweavers.com> writes:
> Subject: [PATCH 7/8] dwrite: Implement system font collection as any other
> font collection
It doesn't work here:
../../../tools/runtest -q -P wine -T ../../.. -M dwrite.dll -p dwrite_test.exe.so analyzer && touch analyzer.ok
wine: Unhandled page fault on read access to 0x001a0000 at address 0x68665c0b (thread 007f), starting debugger...
Unhandled exception: page fault on read access to 0x001a0000 in 32-bit code (0x68665c0b).
Register dump:
CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b
EIP:68665c0b ESP:0032f6c0 EBP:0032f6e8 EFLAGS:00010216( R- -- I -A-P- )
EAX:001a0000 EBX:6867e828 ECX:006e0065 EDX:0018d418
ESI:0018c798 EDI:0018c7b8
Stack dump:
0x0032f6c0: 00000013 7b84aa26 0018c7d0 0018c7b8
0x0032f6d0: 0032f736 0018c928 68665b5b 6867e828
0x0032f6e0: 0032f736 0018c928 0032f7f8 6866720b
0x0032f6f0: 0018c798 0032f736 0018d418 00000000
0x0032f700: 00000040 00000001 6867298d 00002710
0x0032f710: 00000001 00000518 0018cb32 00000000
Backtrace:
=>0 0x68665c0b add_localizedstring+0xbb(iface=0x18c798, locale="en-US", string="WenQuanYi Micro Hei?? ???I??????8bg --auto %ld %ld") [/home/julliard/wine/wine/dlls/dwrite/../../include/wine/unicode.h:200] in dwrite (0x0032f6e8)
1 0x6866720b opentype_get_font_strings_from_id+0x2fa(table_data=0x18c910, id=DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES, strings=0x32f854) [/home/julliard/wine/wine/dlls/dwrite/opentype.c:815] in dwrite (0x0032f7f8)
2 0x6865cab2 create_font_collection+0x1b1(factory=0x12af18, enumerator=0x12b830, ret=0x12af20) [/home/julliard/wine/wine/dlls/dwrite/font.c:1486] in dwrite (0x0032fa88)
3 0x6865d048 get_system_fontcollection+0x97(factory=0x12af18, collection=0x12af20) [/home/julliard/wine/wine/dlls/dwrite/font.c:1676] in dwrite (0x0032fab8)
4 0x68664bbd dwritefactory_GetSystemFontCollection+0xdc(iface=<couldn't compute location>, collection=<couldn't compute location>, check_for_updates=<couldn't compute location>) [/home/julliard/wine/wine/dlls/dwrite/main.c:566] in dwrite (0x0032faf8)
5 0x6865d59b gdiinterop_CreateFontFromLOGFONT+0x5a(iface=<couldn't compute location>, logfont=<couldn't compute location>, font=<couldn't compute location>) [/home/julliard/wine/wine/dlls/dwrite/../../include/dwrite.h:6896] in dwrite (0x0032fb58)
6 0x6862a87d create_fontface+0xac() [/home/julliard/wine/wine/dlls/dwrite/tests/../../../include/dwrite.h:4396] in dwrite_test (0x0032fc18)
7 0x6862b700 func_analyzer+0xb1f() [/home/julliard/wine/wine/dlls/dwrite/tests/analyzer.c:1044] in dwrite_test (0x0032fd58)
8 0x6862a083 main+0x332(argc=<is not available>, argv=<is not available>) [/home/julliard/wine/wine/dlls/dwrite/tests/../../../include/wine/test.h:584] in dwrite_test (0x0032fe08)
9 0x6863571f __wine_spec_exe_entry+0x6e(peb=<couldn't compute location>) [/home/julliard/wine/wine/dlls/winecrt0/exe_entry.c:36] in dwrite_test (0x0032fe58)
10 0x7b85992c call_process_entry+0xb() in kernel32 (0x0032fe78)
11 0x7b85a8aa start_process+0x59(peb=<couldn't compute location>) [/home/julliard/wine/wine/dlls/kernel32/process.c:1104] in kernel32 (0x0032fea8)
12 0x7bc7a5a0 call_thread_func_wrapper+0xb() in ntdll (0x0032fec8)
13 0x7bc7d361 call_thread_func+0xb0(entry=0x7b85a850, arg=0x7ffdf000, frame=0x32ffc8) [/home/julliard/wine/wine/dlls/ntdll/signal_i386.c:2724] in ntdll (0x0032ffa8)
14 0x7bc7a57e call_thread_entry_point+0x11() in ntdll (0x0032ffc8)
15 0x7bc50f57 start_process+0x16(kernel_start=0x7b85a850) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2870] in ntdll (0x0032ffe8)
16 0x6803121d wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
17 0x68031380 wine_switch_to_stack+0x1f(func=0x7bc50f40, arg=0x7b85a850, stack=0x330000) [/home/julliard/wine/wine/libs/wine/port.c:59] in libwine.so.1 (0xffdc1c18)
18 0x7bc56365 LdrInitializeThunk+0x1f4(kernel_start=<couldn't compute location>, unknown2=<couldn't compute location>, unknown3=<couldn't compute location>, unknown4=<couldn't compute location>) [/home/julliard/wine/wine/dlls/ntdll/loader.c:2924] in ntdll (0xffdc1c58)
19 0x7b860613 __wine_kernel_init+0x9b2() [/home/julliard/wine/wine/dlls/kernel32/process.c:1276] in kernel32 (0xffdc2b48)
20 0x7bc57123 __wine_process_init+0x152() [/home/julliard/wine/wine/dlls/ntdll/loader.c:3133] in ntdll (0xffdc2bb8)
21 0x6802ee83 wine_init+0x2c2(argc=0x3, argv=0xffdc30f4, error="", error_size=0x400) [/home/julliard/wine/wine/libs/wine/loader.c:958] in libwine.so.1 (0xffdc2c08)
22 0x7bf00d6a main+0x79(argc=<is not available>, argv=<is not available>) [/home/julliard/wine/wine/loader/main.c:237] in <wine-loader> (0xffdc3048)
23 0x68251a63 __libc_start_main+0xf2() in libc.so.6 (0x00000000)
0x68665c0b add_localizedstring+0xbb [/home/julliard/wine/wine/dlls/dwrite/../../include/wine/unicode.h:200] in dwrite: cmpw $0,0x0(%eax)
200 while (*s) s++;
--
Alexandre Julliard
julliard(a)winehq.org