Re: [PATCH] Avoid passing libusb functions as callbacks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Wed, Aug 22, 2018 at 09:03:03AM +0200, Javier Celaya wrote:
> Hi,
> El mar, 21-08-2018 a las 09:47 -0400, Frediano Ziglio escribió:
> > 
> > Hi,
> > On Tue, Aug 21, 2018 at 02:53:59PM +0200, Javier Celaya wrote:
> > Yes, not against merging the fix. But if we can get it fixedinGlib,
> > it is matter to help other projects that port codetowindows to be
> > fixed as well, etc.Please open a bug in Glib and add a reference to
> > it in thecode
> > Are you talking to Jorge or to Frediano (since he has a fixedmacro)?
> > Jorge is on holidays anyway, he will return in a couple ofweeks. I
> > can open the bug report in Glib, but if you alreadyhave a working
> > version of the macro...
> > Either way is fine. If you open a bug, Frediano can attach hispatch
> > there later on.
> 
> I opened the bug report:https://gitlab.gnome.org/GNOME/glib/issues/1494

I've added this to commit log and pushed.
https://gitlab.freedesktop.org/spice/spice-gtk/commit/558c967ecd230fa6dd

Thanks again,
Victor

> > I just think it is important to have the bug open and a commentin the
> > code about it. I don't mind patching the code with thecomment so we
> > don't have to wait till Jorge is back ;)
> > Cheers,Victor
> > 
> > In the meantime the macro is quite changed, it's now (master)
> > #if defined(g_has_typeof) && GLIB_VERSION_MAX_ALLOWED >=
> > GLIB_VERSION_2_58#define g_clear_pointer(pp,
> > destroy)                                           \  G_STMT_START
> > {                                                               \    
> > G_STATIC_ASSERT (sizeof *(pp) == sizeof
> > (gpointer));                       \    __typeof__(*(pp)) _ptr =
> > *(pp);                                            \    *(pp) =
> > NULL;                                                              \ 
> >    if
> > (_ptr)                                                               
> >    \      (destroy)
> > (_ptr);                                                        \  }
> > G_STMT_END#else /* __GNUC__ */#define g_clear_pointer(pp, destroy)
> > \  G_STMT_START
> > {                                                               \    
> > G_STATIC_ASSERT (sizeof *(pp) == sizeof
> > (gpointer));                       \    /* Only one access, please;
> > work around type aliasing */                   \    union { char *in;
> > gpointer *out; }
> > _pp;                                    \    gpointer
> > _p;                                                               \  
> >   /* This assignment is needed to avoid a gcc warning
> > */                     \    GDestroyNotify _destroy =
> > (GDestroyNotify)
> > (destroy);                      \                                    
> >                                            \    _pp.in = (char *)
> > (pp);                                                    \    _p =
> > *_pp.out;                                                            
> >  \    if
> > (_p)                                                                 
> >    \      {                                                          
> >               \        *_pp.out =
> > NULL;                                                       \        
> > _destroy
> > (_p);                                                         \      
> > }                                                                    
> >     \  } G_STMT_END#endif /* __GNUC__ */
> > so the first definition is good, calling directly destroy function,on
> > the second definition is ignoring the calling convention so
> > basicallychanging compiler you can have the bug or not.
> > The fix for the convention problem is to just call destroy
> > withoutconverting it to GDestroyNotify (a void* should be fine in C
> > althoughin C++ won't work).
> > The 2 definitions are also incoherent, one is using pp once the
> > othertwice so changing compilers you can have other side effects
> > (note the"Only one access, please" comment).
> > Frediano
> -- 
> 
> 
> 
> 
>  
> 
> 
> 
> 
> 
>               
>               
>           
>           
>             Javier Celaya Alastrué
>           
>            Chief Technology Officer
>       
>       
>         
>            
>         javier.celaya@xxxxxxxxxxx
>         
>         
>           
>         +34696969959 
>       
>           
>         j_celaya
>         
>         
>           
>         Legal Information and Privacy Policy
>           
>       
>     
>     
>         
>             Política de confidencialidad
>             Este mensaje y los ficheros anexos son confidenciales dirigiéndose exclusivamente al destinatario mencionado en el encabezamiento. Si usted ha recibido este correo por error, tenga la amabilidad de eliminarlo de su sistema y no divulgar el contenido a terceros. Los datos personales facilitados por usted o por terceros serán tratados por FLEXIBLE SOFTWARE SOLUTIONS S.L.U. con la finalidad de gestionar y mantener los contactos y relaciones que se produzcan como consecuencia de la relación que mantiene con FLEXIBLE SOFTWARE SOLUTIONS S.L.U. Normalmente, la base jurídica que legitima este tratamiento, será su consentimiento, el interés legítimo o la necesidad para gestionar una relación contractual o similar. El plazo de conservación de sus datos vendrá determinado por la relación que mantiene con nosotros. Para más información al respecto, o para ejercer sus derechos de acceso, rectificación, supresión, oposición, limitación o portabilidad, dirija una comunicación por escrito a FLEXIBLE SOFTWARE SOLUTIONS S.L.U: Avenida de Ranillas 1D, Planta 3, Oficina 3G, Zaragoza o al correo electrónico pdo@xxxxxxxxxxx. En caso de considerar vulnerado su derecho a la protección de datos personales, podrá interponer una reclamación ante la Agencia Española de Protección de Datos (www.agpd.es). 
>         
>     

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]