[Spice-devel] [PATCH spice-server 02/12] Be consistent with opaque type

Frediano Ziglio fziglio at redhat.com
Wed Oct 26 06:43:22 UTC 2016


> 
> On Tue, Oct 18, 2016 at 10:09:47AM +0100, Frediano Ziglio wrote:
> > vdi_port_read_buf_release is registered passing data as
> > RedVDIReadBuf*, not RedPipeItem*. Cast opaque to proper
> > pointer type to avoid the assumption that first field of
> > RedVDIReadBuf is a RedPipeItem.
> 
> My initial objection still stands here, RedVDIReadBuf has a 'base'
> field as its first member, and it's very much meant to be a RedPipeItem
> as a way to get refcounting for free. So I much prefer the current
> version where we have a cast from child to base type, rather than
> apparently unref'ing something contained in the read_buf object.
> 
> Christophe
> 

I replied quite a month ago, see https://lists.freedesktop.org/archives/spice-devel/2016-September/032360.html.
I took the not reply as a neutral position from you and I posted again the patch twice and
at the end was acked so I accepted the ack and merged it.
I think that my reasoning is more focuses on the "get refcounting for free" not being
a great design so willing to change and I prefer a compile error in the future
instead on the "base type".

Frediano

> 
> 
> > 
> > Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> > ---
> >  server/reds.c | 3 ++-
> >  1 file changed, 2 insertions(+), 1 deletion(-)
> > 
> > diff --git a/server/reds.c b/server/reds.c
> > index 79f9c9e..a71029f 100644
> > --- a/server/reds.c
> > +++ b/server/reds.c
> > @@ -745,7 +745,8 @@ static void reds_agent_remove(RedsState *reds)
> >  
> >  static void vdi_port_read_buf_release(uint8_t *data, void *opaque)
> >  {
> > -    red_pipe_item_unref((RedPipeItem *)opaque);
> > +    RedVDIReadBuf *read_buf = (RedVDIReadBuf *)opaque;
> > +    red_pipe_item_unref(&read_buf->base);
> >  }
> >  
> >  /*
> > --
> > 2.7.4
> > 
> > _______________________________________________
> > Spice-devel mailing list
> > Spice-devel at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/spice-devel
> 


More information about the Spice-devel mailing list