Nikolay Sivov nsivov@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++;