[prev in list] [next in list] [prev in thread] [next in thread] 

List:       wine-devel
Subject:    Re: [1/2] qcap: Distinguish interface and implementation pointer for VfwCapture output pin.
From:       Sebastian Lackner <sebastian () fds-team ! de>
Date:       2015-06-29 11:11:51
Message-ID: 559127F7.2040907 () fds-team ! de
[Download RAW message or body]

On 29.06.2015 12:50, Nikolay Sivov wrote:
> On 29.06.2015 13:13, Sebastian Lackner wrote:
> > Thanks for the feedback. In this case pOutputPin is basically part of the same \
> > object, not an arbitrary external interface. It is constructed with \
> > VfwPin_Construct -> BaseOutputPin_Construct, and also holds a reference to the \
> > critical section of the parent object for example, so there is no clear \
> > distinction between public/private interfaces anyway.
> > 
> > Most other code parts which use BaseOutputPin_Construct store the result in \
> > something like: (IPin **)&This->store_impl_pointer_here where the variable \
> > already has the corresponding implementation type. Should we change it here too? \
> > Using only the public interface is not possible, take a look at for example the \
> > following code part, where a private member is set from a different interface:
> > 
> > --- snip ---
> > This->driver_info = qcap_driver_init( This->pOutputPin,
> > var.__VARIANT_NAME_1.__VARIANT_NAME_2.__VARIANT_NAME_3.ulVal );
> > if (This->driver_info)
> > {
> > pin = impl_from_IPin(This->pOutputPin);
> > pin->driver_info = This->driver_info; // <---
> > --- snip ---
> 
> I personally prefer to use public interface, usually it makes things more clear, \
> and code doesn't depend on implementation changes. 
> If in this particular case it's not possible then yes, we should store impl pointer \
> instead of interface pointer.

Okay, I'll resend an updated version later then.

> 
> By the way, variant thing looks a little insane, assuming intention was to get \
> V_UI4(&var), which is not necessary right on its own as qcap_driver_init() takes \
> USHORT argument. 

Yes, I also noticed it. Changes to this part should probably be in a separate patch \
though.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic