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

Pekka Paalanen ppaalanen at gmail.com
Mon May 9 12:41:14 UTC 2016


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>


Thanks,
pq
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 811 bytes
Desc: OpenPGP digital signature
URL: <https://lists.freedesktop.org/archives/wayland-devel/attachments/20160509/fab0e405/attachment.sig>


More information about the wayland-devel mailing list