From: Alexandre Julliard Subject: Re: [PATCH 4/5] quartz: Convert media type registration to IRegistrar mechanism. Message-Id: <87a7ggv0sa.fsf@wine> Date: Wed, 24 Apr 2019 00:01:41 +0200 In-Reply-To: <87h8aovi3h.fsf@wine> (Alexandre Julliard's message of "Tue, 23 Apr 2019 17:47:46 +0200") References: <20190423021303.7894-1-z.figura12@gmail.com> <20190423021303.7894-4-z.figura12@gmail.com> <874l6pw5l9.fsf@wine> <87h8aovi3h.fsf@wine> Alexandre Julliard writes: > Zebediah Figura writes: > >> On 4/23/19 2:20 AM, Alexandre Julliard wrote: >>> Zebediah Figura writes: >>> >>>> @@ -687,10 +390,6 @@ HRESULT WINAPI DllRegisterServer(void) >>>> TRACE("\n"); >>>> hr = QUARTZ_DllRegisterServer(); >>>> - if (SUCCEEDED(hr)) >>>> - hr = register_mediatypes_parsing(mediatype_parsing_list); >>>> - if (SUCCEEDED(hr)) >>>> - hr = register_mediatypes_extension(mediatype_extension_list); >>>> if (SUCCEEDED(hr)) >>>> hr = register_filters(filter_list); >>>> return hr; >>> >>> Note that you should add a call to __wine_register_resources(), so that >>> the dll can still be registered manually. >>> >> >> As far as I understand that's already done in the rpcproxy refactoring >> routines (i.e. it's called from QUARTZ_DllRegisterServer()). Is that >> not the case? > > You are right, I missed that you kept the rpcproxy call. That works. It's breaking the tests however: ../../../tools/runtest -q -P wine -T ../../.. -M quartz.dll -p quartz_test.exe mpegsplit && touch mpegsplit.ok mpegsplit.c:97: Test failed: Got hr 0x80040207. wine: Unhandled page fault on execute access to 0x001fb7d0 at address 0x1fb7d0 (thread 0009), starting debugger... Unhandled exception: page fault on execute access to 0x001fb7d0 in 32-bit code (0x001fb7d0). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:001fb7d0 ESP:007cf97c EBP:007cf9a8 EFLAGS:00010216( R- -- I -A-P- ) EAX:001fb7d0 EBX:00000000 ECX:007cf9c0 EDX:00110288 ESI:001f5758 EDI:00000000 Stack dump: 0x007cf97c: 7d76c2c9 001fb7d0 7d81b000 007cf9b8 0x007cf98c: 7d7b567c 001f5758 7d76c280 7d76c320 0x007cf99c: 007cf9c0 001f72f8 007cfa4c 007cf9f8 0x007cf9ac: 7d7c3892 00000000 7d7b5626 7d7b50e5 0x007cf9bc: 7d7c3892 001f5758 00000000 007cf9f8 0x007cf9cc: 7d76d2a7 00000000 00000000 00000000 Backtrace: =>0 0x001fb7d0 (0x007cf9a8) 1 0x7d7c3892 IEnumPinsImpl_Next+0xa1(iface=, cPins=, ppPins=, pcFetched=) [/home/julliard/wine/wine/dlls/strmbase/enumpins.c:147] in quartz (0x007cf9f8) 2 0x7d75c303 FilterGraph2_RemoveFilter+0x182(iface=, pFilter=) [/home/julliard/wine/wine/dlls/quartz/../../include/strmif.h:1194] in quartz (0x007cfb98) 3 0x7d74f2bd FilterGraphInner_Release+0x8c(iface=) [/home/julliard/wine/wine/dlls/quartz/../../include/strmif.h:7014] in quartz (0x007cfbe8) 4 0x7d74f487 FilterGraph2_Release+0x56(iface=) [/home/julliard/wine/wine/dlls/quartz/filtergraph.c:529] in quartz (0x007cfc18) 5 0x00426094 func_mpegsplit+0x483() [/home/julliard/wine/wine/dlls/quartz/tests/../../../include/strmif.h:7007] in quartz_test (0x007cfd48) 6 0x00438581 main+0x2a0(argc=, argv=) [/home/julliard/wine/wine/dlls/quartz/tests/../../../include/wine/test.h:617] in quartz_test (0x007cfe18) 7 0x0040138b filter+0x40138a() in quartz_test (0x007cfeb8) 8 0x7b475452 call_process_entry+0x11() in kernel32 (0x007cfed8) 9 0x7b477587 start_process+0x1a6(entry=, peb=) [/home/julliard/wine/wine/dlls/kernel32/process.c:1256] in kernel32 (0x007cffd8) 10 0x7b47545e start_process_wrapper+0x9() in kernel32 (0x007cffec) 0x001fb7d0: fmul %st(3),%st Modules: Module Address Debug info Name (76 modules) PE 400000- 5c1000 Dwarf quartz_test ELF 7b400000-7b832000 Dwarf kernel32 \-PE 7b420000-7b832000 \ kernel32 ELF 7bc00000-7bd2b000 Deferred ntdll \-PE 7bc10000-7bd2b000 \ ntdll ELF 7c000000-7c005000 Deferred ELF 7d6d1000-7d71e000 Deferred dsound \-PE 7d6e0000-7d71e000 \ dsound ELF 7d71e000-7d824000 Dwarf quartz \-PE 7d730000-7d824000 \ quartz ELF 7d846000-7d883000 Deferred uxtheme \-PE 7d850000-7d883000 \ uxtheme ELF 7d883000-7d88a000 Deferred libxfixes.so.3 ELF 7d88a000-7d897000 Deferred libxcursor.so.1 ELF 7d897000-7d8aa000 Deferred libxi.so.6 ELF 7d8aa000-7d8ae000 Deferred libxcomposite.so.1 ELF 7d8ae000-7d8bb000 Deferred libxrandr.so.2 ELF 7d8bb000-7d8c7000 Deferred libxrender.so.1 ELF 7d8c7000-7d8ce000 Deferred libxxf86vm.so.1 ELF 7d8ce000-7d8d3000 Deferred libxinerama.so.1 ELF 7d8d3000-7d8dd000 Deferred librt.so.1 ELF 7d8dd000-7d8fc000 Deferred libbsd.so.0 ELF 7d8fc000-7d903000 Deferred libxdmcp.so.6 ELF 7d903000-7d908000 Deferred libxau.so.6 ELF 7d908000-7d936000 Deferred libxcb.so.1 ELF 7d936000-7da85000 Deferred libx11.so.6 ELF 7da85000-7da9a000 Deferred libxext.so.6 ELF 7dad2000-7db77000 Deferred winex11 \-PE 7dae0000-7db77000 \ winex11 ELF 7de4c000-7de56000 Deferred libuuid.so.1 ELF 7de56000-7de91000 Deferred libexpat.so.1 ELF 7de91000-7dede000 Deferred libfontconfig.so.1 ELF 7dede000-7defd000 Deferred libz.so.1 ELF 7defd000-7df3c000 Deferred libpng16.so.16 ELF 7df3c000-7dfff000 Deferred libfreetype.so.6 ELF 7dfff000-7e028000 Deferred libtinfo.so.6 ELF 7e028000-7e055000 Deferred libncurses.so.6 ELF 7e08d000-7e15d000 Deferred msvcrt \-PE 7e0a0000-7e15d000 \ msvcrt ELF 7e15d000-7e2a0000 Deferred oleaut32 \-PE 7e170000-7e2a0000 \ oleaut32 ELF 7e2a0000-7e2c6000 Deferred imm32 \-PE 7e2b0000-7e2c6000 \ imm32 ELF 7e2c6000-7e31d000 Deferred usp10 \-PE 7e2d0000-7e31d000 \ usp10 ELF 7e31d000-7e47b000 Deferred comctl32 \-PE 7e330000-7e47b000 \ comctl32 ELF 7e47b000-7e4b9000 Deferred msacm32 \-PE 7e480000-7e4b9000 \ msacm32 ELF 7e4b9000-7e555000 Deferred rpcrt4 \-PE 7e4d0000-7e555000 \ rpcrt4 ELF 7e555000-7e6c7000 Deferred ole32 \-PE 7e570000-7e6c7000 \ ole32 ELF 7e6c7000-7e6f2000 Deferred version \-PE 7e6d0000-7e6f2000 \ version ELF 7e6f2000-7e83b000 Deferred gdi32 \-PE 7e700000-7e83b000 \ gdi32 ELF 7e83b000-7ea63000 Deferred user32 \-PE 7e850000-7ea63000 \ user32 ELF 7ea63000-7eb33000 Deferred winmm \-PE 7ea70000-7eb33000 \ winmm ELF 7eb33000-7ebc7000 Deferred advapi32 \-PE 7eb40000-7ebc7000 \ advapi32 ELF 7ee92000-7eea7000 Deferred libnss_files.so.2 ELF 7eea7000-7eec2000 Deferred libnsl.so.1 ELF 7eec2000-7efc8000 Deferred libm.so.6 ELF 7efca000-7effa000 Deferred msvfw32 \-PE 7efd0000-7effa000 \ msvfw32 ELF f7afd000-f7b03000 Deferred libdl.so.2 ELF f7b03000-f7ce1000 Deferred libc.so.6 ELF f7ce1000-f7d02000 Deferred libpthread.so.0 ELF f7d02000-f7d10000 Deferred libnss_nis.so.2 ELF f7d30000-f7d3a000 Deferred libnss_compat.so.2 ELF f7d3a000-f7ef1000 Dwarf libwine.so.1 ELF f7ef3000-f7f1d000 Deferred ld-linux.so.2 ELF f7f20000-f7f22000 Deferred [vdso].so Threads: process tid prio (all id:s are in hex) 00000008 (D) Z:\home\julliard\wine\wine\dlls\quartz\tests\quartz_test.exe 00000009 0 <== 0000000e services.exe 00000021 0 0000001c 0 00000018 0 00000015 0 00000014 0 00000013 0 00000010 0 0000000f 0 00000011 winedevice.exe 00000019 0 00000017 0 00000016 0 00000012 0 0000001a plugplay.exe 0000001e 0 0000001d 0 0000001b 0 0000001f winedevice.exe 00000026 0 00000023 0 00000022 0 00000020 0 00000024 explorer.exe 00000029 0 00000028 0 00000027 0 00000025 0 System information: Wine build: wine-4.6-209-gf45c89690c06 Platform: i386 Version: Windows 7 Host system: Linux Host version: 4.19.0-4-amd64 -- Alexandre Julliard julliard@winehq.org