[PATCH 7/8] dwrite: Implement system font collection as any other font collection

Alexandre Julliard julliard at winehq.org
Wed Oct 29 06:52:30 CDT 2014


Nikolay Sivov <nsivov at 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 at winehq.org



More information about the wine-devel mailing list