forked from external/yambar
bar/xcb: cleanup: don't try to free NULL resources
This commit is contained in:
parent
f71aaf9615
commit
e48d90ae12
1 changed files with 17 additions and 9 deletions
26
bar/xcb.c
26
bar/xcb.c
|
@ -253,21 +253,29 @@ cleanup(struct bar *_bar)
|
|||
struct private *bar = _bar->private;
|
||||
struct xcb_backend *backend = bar->backend.data;
|
||||
|
||||
if (backend->cursor_ctx != NULL) {
|
||||
if (backend->conn == NULL)
|
||||
return;
|
||||
|
||||
if (backend->cursor != 0)
|
||||
xcb_free_cursor(backend->conn, backend->cursor);
|
||||
if (backend->cursor_ctx != NULL)
|
||||
xcb_cursor_context_free(backend->cursor_ctx);
|
||||
|
||||
free(bar->cursor_name);
|
||||
bar->cursor_name = NULL;
|
||||
}
|
||||
/* TODO: move to bar.c */
|
||||
free(bar->cursor_name);
|
||||
|
||||
if (backend->gc != 0)
|
||||
xcb_free_gc(backend->conn, backend->gc);
|
||||
if (backend->pixmap != 0)
|
||||
xcb_free_pixmap(backend->conn, backend->pixmap);
|
||||
if (backend->win != 0)
|
||||
xcb_destroy_window(backend->conn, backend->win);
|
||||
if (backend->colormap != 0)
|
||||
xcb_free_colormap(backend->conn, backend->colormap);
|
||||
|
||||
xcb_free_gc(backend->conn, backend->gc);
|
||||
xcb_free_pixmap(backend->conn, backend->pixmap);
|
||||
xcb_destroy_window(backend->conn, backend->win);
|
||||
xcb_free_colormap(backend->conn, backend->colormap);
|
||||
xcb_flush(backend->conn);
|
||||
|
||||
xcb_disconnect(backend->conn);
|
||||
backend->conn = NULL;
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Reference in a new issue