]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix typo incurring leaks of face structures
authorPo Lu <luangruo@yahoo.com>
Sat, 29 Jun 2024 12:02:45 +0000 (20:02 +0800)
committerEshel Yaron <me@eshelyaron.com>
Mon, 1 Jul 2024 07:38:51 +0000 (09:38 +0200)
* src/xfaces.c (free_realized_face): Always free realized face
structures, and avoid sending X requests when the display is not
available, not when it is.

(cherry picked from commit 2d8881d5267febd0bc4117c2b7e5ee6c33ef436e)

src/xfaces.c

index 1e0196a1171fb15eeea963f09ac874f24adc9f17..188dd4778bcea53d101004cef2795990c4ea2f4b 100644 (file)
@@ -4599,8 +4599,8 @@ free_realized_face (struct frame *f, struct face *face)
          /* This function might be called with the frame's display
             connection deleted, in which event the callbacks below
             should not be executed, as they generate X requests.  */
-         if (FRAME_X_DISPLAY (f))
-           return;
+         if (!FRAME_X_DISPLAY (f))
+           goto free_face;
 #endif /* HAVE_X_WINDOWS */
 
          if (face->gc)
@@ -4619,6 +4619,9 @@ free_realized_face (struct frame *f, struct face *face)
        }
 #endif /* HAVE_WINDOW_SYSTEM */
 
+#ifdef HAVE_X_WINDOWS
+    free_face:
+#endif /* HAVE_X_WINDOWS */
       xfree (face);
     }
 }