diff --git a/i3bar/src/workspaces.c b/i3bar/src/workspaces.c index 0393071e..89f7757d 100644 --- a/i3bar/src/workspaces.c +++ b/i3bar/src/workspaces.c @@ -250,7 +250,7 @@ void parse_workspaces_json(char *json) { } /* - * free() all workspace data-structures + * free() all workspace data-structures. Does not free() the heads of the tailqueues. * */ void free_workspaces() { diff --git a/i3bar/src/xcb.c b/i3bar/src/xcb.c index 1d7bcd3e..10afa923 100644 --- a/i3bar/src/xcb.c +++ b/i3bar/src/xcb.c @@ -585,8 +585,10 @@ void clean_xcb() { SLIST_FOREACH(o_walk, outputs, slist) { destroy_window(o_walk); FREE_TAILQ(o_walk->workspaces, i3_ws); + FREE(o_walk->workspaces); } FREE_SLIST(outputs, i3_output); + FREE(outputs); xcb_disconnect(xcb_connection);