quartz: COM cleanup for Parser_OutputPin

Aric Stewart aric at codeweavers.com
Fri May 18 11:06:02 CDT 2012


Ahh, my understanding of COM cleanup grows...

-aric

On 5/18/12 10:27 AM, Michael Stefaniuc wrote:
> 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