[PATCH 4/5] quartz: Convert media type registration to IRegistrar mechanism.

Alexandre Julliard julliard at winehq.org
Tue Apr 23 17:01:41 CDT 2019


Alexandre Julliard <julliard at winehq.org> writes:

> Zebediah Figura <z.figura12 at gmail.com> writes:
>
>> On 4/23/19 2:20 AM, Alexandre Julliard wrote:
>>> Zebediah Figura <z.figura12 at gmail.com> 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=<couldn't compute location>, cPins=<couldn't compute location>, ppPins=<couldn't compute location>, pcFetched=<couldn't compute location>) [/home/julliard/wine/wine/dlls/strmbase/enumpins.c:147] in quartz (0x007cf9f8)
  2 0x7d75c303 FilterGraph2_RemoveFilter+0x182(iface=<couldn't compute location>, pFilter=<couldn't compute location>) [/home/julliard/wine/wine/dlls/quartz/../../include/strmif.h:1194] in quartz (0x007cfb98)
  3 0x7d74f2bd FilterGraphInner_Release+0x8c(iface=<couldn't compute location>) [/home/julliard/wine/wine/dlls/quartz/../../include/strmif.h:7014] in quartz (0x007cfbe8)
  4 0x7d74f487 FilterGraph2_Release+0x56(iface=<couldn't compute location>) [/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=<is not available>, argv=<is not available>) [/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=<is not available>, peb=<is not available>) [/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<elf>
  \-PE	7b420000-7b832000	\               kernel32
ELF	7bc00000-7bd2b000	Deferred        ntdll<elf>
  \-PE	7bc10000-7bd2b000	\               ntdll
ELF	7c000000-7c005000	Deferred        <wine-loader>
ELF	7d6d1000-7d71e000	Deferred        dsound<elf>
  \-PE	7d6e0000-7d71e000	\               dsound
ELF	7d71e000-7d824000	Dwarf           quartz<elf>
  \-PE	7d730000-7d824000	\               quartz
ELF	7d846000-7d883000	Deferred        uxtheme<elf>
  \-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<elf>
  \-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<elf>
  \-PE	7e0a0000-7e15d000	\               msvcrt
ELF	7e15d000-7e2a0000	Deferred        oleaut32<elf>
  \-PE	7e170000-7e2a0000	\               oleaut32
ELF	7e2a0000-7e2c6000	Deferred        imm32<elf>
  \-PE	7e2b0000-7e2c6000	\               imm32
ELF	7e2c6000-7e31d000	Deferred        usp10<elf>
  \-PE	7e2d0000-7e31d000	\               usp10
ELF	7e31d000-7e47b000	Deferred        comctl32<elf>
  \-PE	7e330000-7e47b000	\               comctl32
ELF	7e47b000-7e4b9000	Deferred        msacm32<elf>
  \-PE	7e480000-7e4b9000	\               msacm32
ELF	7e4b9000-7e555000	Deferred        rpcrt4<elf>
  \-PE	7e4d0000-7e555000	\               rpcrt4
ELF	7e555000-7e6c7000	Deferred        ole32<elf>
  \-PE	7e570000-7e6c7000	\               ole32
ELF	7e6c7000-7e6f2000	Deferred        version<elf>
  \-PE	7e6d0000-7e6f2000	\               version
ELF	7e6f2000-7e83b000	Deferred        gdi32<elf>
  \-PE	7e700000-7e83b000	\               gdi32
ELF	7e83b000-7ea63000	Deferred        user32<elf>
  \-PE	7e850000-7ea63000	\               user32
ELF	7ea63000-7eb33000	Deferred        winmm<elf>
  \-PE	7ea70000-7eb33000	\               winmm
ELF	7eb33000-7ebc7000	Deferred        advapi32<elf>
  \-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<elf>
  \-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 at winehq.org



More information about the wine-devel mailing list