[PATCH] quartz: show fixme for Parser_OutputPin_QueryInterface only once

Nikolay Sivov bunglehead at gmail.com
Wed Oct 21 02:41:56 CDT 2015


On 20.10.2015 21:56, Jonas Maebe wrote:
> This prevents the game Majesty Gold HD from flooding the console with
> "No interface for {56a868a5-0ad4-11ce-b03a-0020af0ba770}" messages.
>
> Signed-off-by: Jonas Maebe <jonas.maebe at elis.ugent.be>
> ---
>   dlls/quartz/parser.c | 7 ++++++-
>   1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/dlls/quartz/parser.c b/dlls/quartz/parser.c
> index cd8d93d..a9384a5 100644
> --- a/dlls/quartz/parser.c
> +++ b/dlls/quartz/parser.c
> @@ -634,6 +634,7 @@ static HRESULT WINAPI Parser_OutputPin_BreakConnect(BaseOutputPin *This)
>
>   static HRESULT WINAPI Parser_OutputPin_QueryInterface(IPin * iface, REFIID riid, LPVOID * ppv)
>   {
> +    static int once = 0;
>       Parser_OutputPin *This = unsafe_impl_Parser_OutputPin_from_IPin(iface);
>
>       TRACE("(%s, %p)\n", qzdebugstr_guid(riid), ppv);
> @@ -654,7 +655,11 @@ static HRESULT WINAPI Parser_OutputPin_QueryInterface(IPin * iface, REFIID riid,
>           return S_OK;
>       }
>
> -    FIXME("No interface for %s!\n", qzdebugstr_guid(riid));
> +    if (!once)
> +    {
> +      FIXME("No interface for %s!\n", qzdebugstr_guid(riid));
> +      once = 1;
> +    }
>
>       return E_NOINTERFACE;
>   }
>

This is too much, because it will disable every failed QI fixme after 
first one. Base output pin already supports IQualityControl case, by 
forwarding it. So proper fix is to try to write some tests for this pin 
implementation to see if it's supposed to be supported, and then act 
from there.




More information about the wine-devel mailing list