From 943d566cefd8c75c07255624c2b56452838f4657 Mon Sep 17 00:00:00 2001 From: Zedhugh Chen Date: Mon, 11 Aug 2025 07:52:49 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8A=E6=94=BE=20xcb=20=E5=BA=93=E5=BA=94?= =?UTF-8?q?=E8=AF=A5=E9=87=8A=E6=94=BE=E7=9A=84=E5=86=85=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/xcb/xcb.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/xcb/xcb.c b/src/xcb/xcb.c index 9ca0662..af408ca 100644 --- a/src/xcb/xcb.c +++ b/src/xcb/xcb.c @@ -99,6 +99,7 @@ static monitor_rect_t *detect_monitor_rect_by_xinerama(void) { } prev = m; } + free(reply); return list; } @@ -215,9 +216,9 @@ window_list_t *scan_window_list(void) { init_ewmh_extension(); xcb_query_tree_cookie_t cookie = xcb_query_tree(conn, screen->root); - xcb_query_tree_reply_t *reply = xcb_query_tree_reply(conn, cookie, NULL); - xcb_window_t *list = xcb_query_tree_children(reply); - int len = xcb_query_tree_children_length(reply); + xcb_query_tree_reply_t *tree_reply = xcb_query_tree_reply(conn, cookie, NULL); + xcb_window_t *list = xcb_query_tree_children(tree_reply); + int len = xcb_query_tree_children_length(tree_reply); uint32_t count = 0; xcb_window_t temp_windoow_array[len]; @@ -226,11 +227,11 @@ window_list_t *scan_window_list(void) { xcb_get_window_attributes_cookie_t wa_cookie = xcb_get_window_attributes(conn, window); - xcb_get_window_attributes_reply_t *reply = + xcb_get_window_attributes_reply_t *attribute_reply = xcb_get_window_attributes_reply(conn, wa_cookie, NULL); - uint8_t override_redirect = reply->override_redirect; - uint8_t map_state = reply->map_state; - free(reply); + uint8_t override_redirect = attribute_reply->override_redirect; + uint8_t map_state = attribute_reply->map_state; + free(attribute_reply); if (override_redirect || map_state != XCB_MAP_STATE_VIEWABLE) continue; xcb_window_t transient_for = XCB_NONE; @@ -242,6 +243,7 @@ window_list_t *scan_window_list(void) { temp_windoow_array[count] = window; count++; } + free(tree_reply); if (!count) return NULL; @@ -271,6 +273,7 @@ void clean_xcb(void) { if (!ewmh_init_failed) { xcb_ewmh_connection_wipe(ewmh); } + free(ewmh); ewmh_init_failed = false; ewmh = NULL; }