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
16
bar/xcb.c
16
bar/xcb.c
|
@ -253,21 +253,29 @@ cleanup(struct bar *_bar)
|
||||||
struct private *bar = _bar->private;
|
struct private *bar = _bar->private;
|
||||||
struct xcb_backend *backend = bar->backend.data;
|
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);
|
xcb_free_cursor(backend->conn, backend->cursor);
|
||||||
|
if (backend->cursor_ctx != NULL)
|
||||||
xcb_cursor_context_free(backend->cursor_ctx);
|
xcb_cursor_context_free(backend->cursor_ctx);
|
||||||
|
|
||||||
|
/* TODO: move to bar.c */
|
||||||
free(bar->cursor_name);
|
free(bar->cursor_name);
|
||||||
bar->cursor_name = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (backend->gc != 0)
|
||||||
xcb_free_gc(backend->conn, backend->gc);
|
xcb_free_gc(backend->conn, backend->gc);
|
||||||
|
if (backend->pixmap != 0)
|
||||||
xcb_free_pixmap(backend->conn, backend->pixmap);
|
xcb_free_pixmap(backend->conn, backend->pixmap);
|
||||||
|
if (backend->win != 0)
|
||||||
xcb_destroy_window(backend->conn, backend->win);
|
xcb_destroy_window(backend->conn, backend->win);
|
||||||
|
if (backend->colormap != 0)
|
||||||
xcb_free_colormap(backend->conn, backend->colormap);
|
xcb_free_colormap(backend->conn, backend->colormap);
|
||||||
xcb_flush(backend->conn);
|
|
||||||
|
|
||||||
|
xcb_flush(backend->conn);
|
||||||
xcb_disconnect(backend->conn);
|
xcb_disconnect(backend->conn);
|
||||||
|
backend->conn = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Add table
Reference in a new issue