diff --git a/src/xcb/window.c b/src/xcb/window.c index 60845fe..8900c3c 100644 --- a/src/xcb/window.c +++ b/src/xcb/window.c @@ -43,7 +43,8 @@ void get_window_class_instance(xcb_window_t window, xcb_icccm_get_wm_class_reply_t prop; const char *class = NULL; const char *instance = NULL; - if (xcb_icccm_get_wm_class_reply(conn, cookie, &prop, NULL)) { + bool has_reply = xcb_icccm_get_wm_class_reply(conn, cookie, &prop, NULL); + if (has_reply) { class = prop.class_name; instance = prop.instance_name; } else { @@ -54,7 +55,7 @@ void get_window_class_instance(xcb_window_t window, strncpy(class_instance->class, class, LENGTH(class_instance->class)); strncpy(class_instance->instance, instance, LENGTH(class_instance->instance)); - xcb_icccm_get_wm_class_reply_wipe(&prop); + if (has_reply) xcb_icccm_get_wm_class_reply_wipe(&prop); } static visual_t *find_alpha_visual() {