WL_EXPORT void
wl_display_destroy(struct wl_display *display)
{
+ struct wl_global *global, *gnext;
+ struct wl_global_listener *listener, *lnext;
+
wl_connection_destroy(display->connection);
wl_hash_table_destroy(display->objects);
+ wl_list_for_each_safe(global, gnext,
+ &display->global_list, link)
+ free(global);
+ wl_list_for_each_safe(listener, lnext,
+ &display->global_listener_list, link)
+ free(listener);
+
close(display->fd);
free(display);
}
wl_display_destroy(struct wl_display *display)
{
struct wl_socket *s, *next;
+ struct wl_global *global, *gnext;
- wl_event_loop_destroy(display->loop);
- wl_hash_table_destroy(display->objects);
-
+ wl_event_loop_destroy(display->loop);
+ wl_hash_table_destroy(display->objects);
wl_list_for_each_safe(s, next, &display->socket_list, link) {
close(s->fd);
unlink(s->addr.sun_path);
free(s);
}
+ wl_list_for_each_safe(global, gnext, &display->global_list, link)
+ free(global);
+
free(display);
}