quartz: COM cleanup for Parser_OutputPin

Michael Stefaniuc mstefani at redhat.com
Fri May 18 10:27:08 CDT 2012


Hello Aric,

On 05/18/2012 04:27 PM, Aric Stewart wrote:
> diff --git a/dlls/quartz/avisplit.c b/dlls/quartz/avisplit.c
> index 5027e90..bac1b24 100644
> --- a/dlls/quartz/avisplit.c
> +++ b/dlls/quartz/avisplit.c
> @@ -288,7 +288,7 @@ static HRESULT AVISplitter_next_request(AVISplitterImpl *This, DWORD streamnumbe
>  
>  static HRESULT AVISplitter_Receive(AVISplitterImpl *This, IMediaSample *sample, DWORD streamnumber)
>  {
> -    Parser_OutputPin *pin = (Parser_OutputPin *)This->Parser.ppPins[1+streamnumber];
> +    Parser_OutputPin *pin = impl_Parser_OutputPin_from_IPin(This->Parser.ppPins[1+streamnumber]);
this isn't right. impl_from_... should be used only from methods of the
respective implementation. You can either:
- Make This->Parser.ppPins an array of Parser_OutputPin instead of IPin
- Or if you need to support application provided IPin then you'll need
an unsafe_impl_from_...

>      HRESULT hr;
>      LONGLONG start, stop, rtstart, rtstop;
>      StreamData *stream = &This->streams[streamnumber];

bye
        michael



More information about the wine-devel mailing list