Fix memleaks by avoiding _checked variants when discarding the result
Thanks psychon for pointing this out in https://github.com/i3/i3/pull/2450#discussion_r78560433!
This commit is contained in:
parent
5594139676
commit
b850cfba4d
|
@ -826,7 +826,7 @@ int main(int argc, char *argv[]) {
|
||||||
(uint32_t[]){XCB_GX_COPY, ~0, XCB_FILL_STYLE_SOLID, XCB_SUBWINDOW_MODE_INCLUDE_INFERIORS});
|
(uint32_t[]){XCB_GX_COPY, ~0, XCB_FILL_STYLE_SOLID, XCB_SUBWINDOW_MODE_INCLUDE_INFERIORS});
|
||||||
|
|
||||||
xcb_copy_area(conn, root->root, pixmap, gc, 0, 0, 0, 0, width, height);
|
xcb_copy_area(conn, root->root, pixmap, gc, 0, 0, 0, 0, width, height);
|
||||||
xcb_change_window_attributes_checked(conn, root->root, XCB_CW_BACK_PIXMAP, (uint32_t[]){pixmap});
|
xcb_change_window_attributes(conn, root->root, XCB_CW_BACK_PIXMAP, (uint32_t[]){pixmap});
|
||||||
xcb_flush(conn);
|
xcb_flush(conn);
|
||||||
xcb_free_gc(conn, gc);
|
xcb_free_gc(conn, gc);
|
||||||
xcb_free_pixmap(conn, pixmap);
|
xcb_free_pixmap(conn, pixmap);
|
||||||
|
|
2
src/x.c
2
src/x.c
|
@ -789,7 +789,7 @@ void x_push_node(Con *con) {
|
||||||
int width = MAX((int32_t)rect.width, 1);
|
int width = MAX((int32_t)rect.width, 1);
|
||||||
int height = MAX((int32_t)rect.height, 1);
|
int height = MAX((int32_t)rect.height, 1);
|
||||||
|
|
||||||
xcb_create_pixmap_checked(conn, win_depth, con->frame_buffer.id, con->frame.id, width, height);
|
xcb_create_pixmap(conn, win_depth, con->frame_buffer.id, con->frame.id, width, height);
|
||||||
draw_util_surface_init(conn, &(con->frame_buffer), con->frame_buffer.id,
|
draw_util_surface_init(conn, &(con->frame_buffer), con->frame_buffer.id,
|
||||||
get_visualtype_by_id(get_visualid_by_depth(win_depth)), width, height);
|
get_visualtype_by_id(get_visualid_by_depth(win_depth)), width, height);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue