mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-04-03 07:15:42 -04:00
Do not leak globals and listeners.
From 3fa2ad7dec42f85795449f33b2a4c9461aa4924d Mon Sep 17 00:00:00 2001 From: Laszlo Agocs <laszlo.p.agocs@nokia.com> Date: Tue, 14 Jun 2011 11:35:28 +0200 Subject: [PATCH] Do not leak globals and listeners.
This commit is contained in:
parent
a2db57517b
commit
9c36ea776b
2 changed files with 16 additions and 3 deletions
|
|
@ -413,8 +413,18 @@ wl_display_connect(const char *name)
|
||||||
WL_EXPORT void
|
WL_EXPORT void
|
||||||
wl_display_destroy(struct wl_display *display)
|
wl_display_destroy(struct wl_display *display)
|
||||||
{
|
{
|
||||||
|
struct wl_global *global, *gnext;
|
||||||
|
struct wl_global_listener *listener, *lnext;
|
||||||
|
|
||||||
wl_connection_destroy(display->connection);
|
wl_connection_destroy(display->connection);
|
||||||
wl_hash_table_destroy(display->objects);
|
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);
|
close(display->fd);
|
||||||
free(display);
|
free(display);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -617,10 +617,10 @@ WL_EXPORT void
|
||||||
wl_display_destroy(struct wl_display *display)
|
wl_display_destroy(struct wl_display *display)
|
||||||
{
|
{
|
||||||
struct wl_socket *s, *next;
|
struct wl_socket *s, *next;
|
||||||
|
struct wl_global *global, *gnext;
|
||||||
|
|
||||||
wl_event_loop_destroy(display->loop);
|
wl_event_loop_destroy(display->loop);
|
||||||
wl_hash_table_destroy(display->objects);
|
wl_hash_table_destroy(display->objects);
|
||||||
|
|
||||||
wl_list_for_each_safe(s, next, &display->socket_list, link) {
|
wl_list_for_each_safe(s, next, &display->socket_list, link) {
|
||||||
close(s->fd);
|
close(s->fd);
|
||||||
unlink(s->addr.sun_path);
|
unlink(s->addr.sun_path);
|
||||||
|
|
@ -629,6 +629,9 @@ wl_display_destroy(struct wl_display *display)
|
||||||
free(s);
|
free(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wl_list_for_each_safe(global, gnext, &display->global_list, link)
|
||||||
|
free(global);
|
||||||
|
|
||||||
free(display);
|
free(display);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue