From 385906beae3a7605629fd3a582f1be9254d7345b Mon Sep 17 00:00:00 2001 From: Yong Bakos Date: Sun, 8 May 2016 08:44:08 -0500 Subject: [PATCH] connection: Move wl_interface_equal to util 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 Reviewed-by: Pekka Paalanen Reviewed-by: Bryce Harrington --- 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) { -- 2.7.4