]> git.sur5r.net Git - i3/i3lock/commitdiff
Properly free the reply of xcb_get_geometry
authorMichael Stapelberg <michael@stapelberg.de>
Tue, 3 Jan 2012 21:01:05 +0000 (21:01 +0000)
committerMichael Stapelberg <michael@stapelberg.de>
Tue, 3 Jan 2012 21:01:05 +0000 (21:01 +0000)
i3lock.c

index 8a365f30ea83a4ada902862a8f2ab83cbfa6c9f7..b694f6e884771163839c7640529bfe3cd6c9b826 100644 (file)
--- a/i3lock.c
+++ b/i3lock.c
@@ -391,20 +391,24 @@ static void handle_mapping_notify(xcb_mapping_notify_event_t *event) {
  * and also redraw the image, if any.
  *
  */
-void handle_screen_resize(xcb_window_t win, uint32_t* last_resolution) {
+void handle_screen_resize() {
     xcb_get_geometry_cookie_t geomc;
     xcb_get_geometry_reply_t *geom;
     geomc = xcb_get_geometry(conn, screen->root);
-    if ((geom = xcb_get_geometry_reply(conn, geomc, 0)) == NULL) {
-      return;
-    }
+    if ((geom = xcb_get_geometry_reply(conn, geomc, 0)) == NULL)
+        return;
 
-    if (last_resolution[0] == geom->width && last_resolution[1] == geom->height)
-      return;
+    if (last_resolution[0] == geom->width &&
+        last_resolution[1] == geom->height) {
+        free(geom);
+        return;
+    }
 
     last_resolution[0] = geom->width;
     last_resolution[1] = geom->height;
 
+    free(geom);
+
 #ifndef NOLIBCAIRO
     redraw_screen();
 #endif
@@ -523,7 +527,7 @@ static void xcb_check_cb(EV_P_ ev_check *w, int revents) {
         }
 
         if (type == XCB_CONFIGURE_NOTIFY) {
-            handle_screen_resize(win, last_resolution);
+            handle_screen_resize();
             continue;
         }