From: Yong Bakos Date: Sun, 8 May 2016 13:44:08 +0000 (-0500) Subject: connection: Move wl_interface_equal to util X-Git-Tag: 1.10.92~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=385906beae3a7605629fd3a582f1be9254d7345b;p=platform%2Fupstream%2Fwayland.git 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 --- 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) {