[PATCH wayland 1/1] connection: Move wl_interface_equal to util

Bryce Harrington bryce at osg.samsung.com
Wed May 11 01:08:15 UTC 2016


On Mon, May 09, 2016 at 03:41:14PM +0300, Pekka Paalanen wrote:
> On Sun,  8 May 2016 08:44:08 -0500
> Yong Bakos <junk at humanoriented.com> wrote:
> 
> > From: Yong Bakos <ybakos at humanoriented.com>
> > 
> > Move the wl_interface_equal prototype to the top of wayland-private, where
> > it is not buried in the middle of map, connection and closure functions.
> > 
> > Move the implementation out of connection and into util. This is a utility
> > function, not specific to connections, and has call sites within connection,
> > wayland-client and wayland-server.
> > 
> > Signed-off-by: Yong Bakos <ybakos at humanoriented.com>
> > ---
> >  src/connection.c      | 13 -------------
> >  src/wayland-private.h |  8 ++++----
> >  src/wayland-util.c    | 13 +++++++++++++
> >  3 files changed, 17 insertions(+), 17 deletions(-)
> > 
> > diff --git a/src/connection.c b/src/connection.c
> > index 747229e..c3293a9 100644
> > --- a/src/connection.c
> > +++ b/src/connection.c
> > @@ -798,19 +798,6 @@ wl_connection_demarshal(struct wl_connection *connection,
> >  }
> >  
> >  int
> > -wl_interface_equal(const struct wl_interface *a, const struct wl_interface *b)
> > -{
> > -	/* In most cases the pointer equality test is sufficient.
> > -	 * However, in some cases, depending on how things are split
> > -	 * across shared objects, we can end up with multiple
> > -	 * instances of the interface metadata constants.  So if the
> > -	 * pointers match, the interfaces are equal, if they don't
> > -	 * match we have to compare the interface names. */
> > -
> > -	return a == b || strcmp(a->name, b->name) == 0;
> > -}
> > -
> > -int
> >  wl_closure_lookup_objects(struct wl_closure *closure, struct wl_map *objects)
> >  {
> >  	struct wl_object *object;
> > diff --git a/src/wayland-private.h b/src/wayland-private.h
> > index 994bc45..a9a07a8 100644
> > --- a/src/wayland-private.h
> > +++ b/src/wayland-private.h
> > @@ -55,6 +55,10 @@ struct wl_object {
> >  extern struct wl_object global_zombie_object;
> >  #define WL_ZOMBIE_OBJECT ((void*)&global_zombie_object)
> >  
> > +int
> > +wl_interface_equal(const struct wl_interface *iface1,
> > +		   const struct wl_interface *iface2);
> > +
> >  /* Flags for wl_map_insert_new and wl_map_insert_at.  Flags can be queried with
> >   * wl_map_lookup_flags.  The current implementation has room for 1 bit worth of
> >   * flags.  If more flags are ever added, the implementation of wl_map will have
> > @@ -103,10 +107,6 @@ struct wl_connection;
> >  struct wl_closure;
> >  struct wl_proxy;
> >  
> > -int
> > -wl_interface_equal(const struct wl_interface *iface1,
> > -		   const struct wl_interface *iface2);
> > -
> >  struct wl_connection *
> >  wl_connection_create(int fd);
> >  
> > diff --git a/src/wayland-util.c b/src/wayland-util.c
> > index 748476a..5bfb7e1 100644
> > --- a/src/wayland-util.c
> > +++ b/src/wayland-util.c
> > @@ -35,6 +35,19 @@
> >  
> >  struct wl_object global_zombie_object;
> >  
> > +int
> > +wl_interface_equal(const struct wl_interface *a, const struct wl_interface *b)
> > +{
> > +	/* In most cases the pointer equality test is sufficient.
> > +	 * However, in some cases, depending on how things are split
> > +	 * across shared objects, we can end up with multiple
> > +	 * instances of the interface metadata constants.  So if the
> > +	 * pointers match, the interfaces are equal, if they don't
> > +	 * match we have to compare the interface names.
> > +	 */
> > +	return a == b || strcmp(a->name, b->name) == 0;
> > +}
> > +
> >  WL_EXPORT void
> >  wl_list_init(struct wl_list *list)
> >  {
> 
> Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>

Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>

> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v2
> 
> iQIVAwUBVzCFcSNf5bQRqqqnAQjtfBAAmOgNH+tI3mDtBCTwTnPfslCyeDHlZmoa
> JSvXlkyfxUx0C2TmC4pDUI89JB7pEHM1b2m3u8OotMDBgTf9Vawb9pQuCZB0W8MX
> 406+41f/m4Lbfo6R66wMiec5swHDxIMA2iu2lR42NKoQEAMfHlkA6QPnZhhJhWNv
> PT0lwIMG7S82x8j3iHOj/faXCG1WnK1zNL7ZAFCp7Ug1i4o2KeEZqpqS2MRDy/T0
> O6U3tZHLi42vtxXqsWPY6X4/J2YIysbTM4K17IZlkgxiRUstBncoRdNf0Upo5rPc
> ZaHBO0wmf55uzUNxgTC3Mh1XopgtNn6/jGV7UlW/U3avSv+cNx8x0k0Geq9K1cch
> 8lX0RxyEyFlPn6pDk9S27wNdh0SLx7yhfpiCms6x+CHCF2mVjSbViM0d4g1VY5Uw
> gT69+fhvnbdaJygh35oReoo86PZOpR61phWmeQkToXaj+FnEG8Pl5HSTpqG5tARH
> G0OXoLdTIXC4yJZUVA15KiUB3QKJmYxiryX3LYrlqiCZI0UCPBY1pI59Nczmy7wo
> IlQiL3PJIOMGNTqL+Fuzn42DPhfbxugxnTeFTlGyDrzPnUUjCpTqAUrc7r+25OCi
> vb3wKtH6kgCoEJCY8gI9zKy0PpbMg40DIQDpTfC38ee4rDsvLwzfkYyqrOLK/sPO
> HXM1WjdzO4Q=
> =yi7J
> -----END PGP SIGNATURE-----


> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel



More information about the wayland-devel mailing list