From e6ef1cee7af1a74779fe925ce484bfe5195a1ddf Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Mon, 13 Aug 2018 12:06:43 +0100 Subject: [PATCH] fix memory leaks --- src/display/device/display_wayland.cpp | 8 +++++--- src/display/device/display_x11.cpp | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/display/device/display_wayland.cpp b/src/display/device/display_wayland.cpp index 3f8797d0e..c41bf0f6b 100755 --- a/src/display/device/display_wayland.cpp +++ b/src/display/device/display_wayland.cpp @@ -357,9 +357,9 @@ struct WaylandDisplay { int lasty=0; std::vector egl_configs; - EGLSurface egl_surface; - EGLContext egl_context; - EGLDisplay egl_display; + EGLSurface egl_surface = nullptr; + EGLContext egl_context = nullptr; + EGLDisplay egl_display = nullptr; EGLint width, height; bool is_fullscreen; @@ -824,6 +824,8 @@ WaylandDisplay::~WaylandDisplay() { if(wsurface) wl_surface_destroy(wsurface); if(wregistry) wl_registry_destroy(wregistry); if(wdisplay) wl_display_disconnect(wdisplay); + + if(xkb_context) xkb_context_unref(xkb_context); } WaylandWindow::WaylandWindow(const int w, const int h, std::unique_ptr display) : display(std::move(display)){ diff --git a/src/display/device/display_x11.cpp b/src/display/device/display_x11.cpp index dca8bb74a..fd49d38ab 100644 --- a/src/display/device/display_x11.cpp +++ b/src/display/device/display_x11.cpp @@ -294,6 +294,8 @@ X11Window::X11Window( throw std::runtime_error("Pangolin X11: Failed to create window." ); } + XFree(vi); + XStoreName( display->display, win, title.c_str() ); XMapWindow( display->display, win );