Merge pull request #236 from liskin/memleaks
fix a few memory leaks reported by valgrind
This commit is contained in:
commit
0063738754
|
@ -26,6 +26,7 @@ enum driver detect_driver(xcb_connection_t *c, backend_t *backend_data, xcb_wind
|
||||||
c, xcb_randr_get_providers(c, window), NULL);
|
c, xcb_randr_get_providers(c, window), NULL);
|
||||||
if (r == NULL) {
|
if (r == NULL) {
|
||||||
log_warn("Failed to get RANDR providers");
|
log_warn("Failed to get RANDR providers");
|
||||||
|
free(randr_version);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -58,9 +59,11 @@ enum driver detect_driver(xcb_connection_t *c, backend_t *backend_data, xcb_wind
|
||||||
ret |= DRIVER_INTEL;
|
ret |= DRIVER_INTEL;
|
||||||
}
|
}
|
||||||
free(name);
|
free(name);
|
||||||
|
free(r2);
|
||||||
}
|
}
|
||||||
free(r);
|
free(r);
|
||||||
}
|
}
|
||||||
|
free(randr_version);
|
||||||
|
|
||||||
// If the backend supports driver detection, use that as well
|
// If the backend supports driver detection, use that as well
|
||||||
if (backend_data && backend_data->ops->detect_driver) {
|
if (backend_data && backend_data->ops->detect_driver) {
|
||||||
|
|
|
@ -1333,10 +1333,13 @@ static void handle_pending_updates(EV_P_ struct session *ps) {
|
||||||
// Call fill_win on new windows
|
// Call fill_win on new windows
|
||||||
handle_new_windows(ps);
|
handle_new_windows(ps);
|
||||||
|
|
||||||
|
{
|
||||||
auto r = xcb_get_input_focus_reply(ps->c, xcb_get_input_focus(ps->c), NULL);
|
auto r = xcb_get_input_focus_reply(ps->c, xcb_get_input_focus(ps->c), NULL);
|
||||||
if (!ps->active_win || (r && r->focus != ps->active_win->base.id)) {
|
if (!ps->active_win || (r && r->focus != ps->active_win->base.id)) {
|
||||||
recheck_focus(ps);
|
recheck_focus(ps);
|
||||||
}
|
}
|
||||||
|
free(r);
|
||||||
|
}
|
||||||
|
|
||||||
// Process window updates
|
// Process window updates
|
||||||
refresh_windows(ps);
|
refresh_windows(ps);
|
||||||
|
|
|
@ -1232,6 +1232,7 @@ struct win *fill_win(session_t *ps, struct win *w) {
|
||||||
if (a->_class == XCB_WINDOW_CLASS_INPUT_ONLY) {
|
if (a->_class == XCB_WINDOW_CLASS_INPUT_ONLY) {
|
||||||
// No need to manage this window, but we still keep it on the window stack
|
// No need to manage this window, but we still keep it on the window stack
|
||||||
w->managed = false;
|
w->managed = false;
|
||||||
|
free(a);
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue