]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix two crashes upon startup
authorPo Lu <luangruo@yahoo.com>
Fri, 28 Apr 2023 03:47:46 +0000 (11:47 +0800)
committerPo Lu <luangruo@yahoo.com>
Fri, 28 Apr 2023 03:47:46 +0000 (11:47 +0800)
* src/image.c (image_create_bitmap_from_data)
(image_create_bitmap_from_file): Specify a Window or a Pixmap
describing the screen, not a back buffer drawable which may not exist.
Otherwise, Emacs crashes on startup when a bitmap icon is in use.

src/image.c

index e78c0abb0db6a4fcac8bdb9c25d1823365dac734..8ee802a9d62aef4bddd37f2c27905f7d99314064 100644 (file)
@@ -479,7 +479,8 @@ image_create_bitmap_from_data (struct frame *f, char *bits,
 
 #ifdef HAVE_X_WINDOWS
   Pixmap bitmap;
-  bitmap = XCreateBitmapFromData (FRAME_X_DISPLAY (f), FRAME_X_DRAWABLE (f),
+  bitmap = XCreateBitmapFromData (FRAME_X_DISPLAY (f),
+                                 dpyinfo->root_window,
                                  bits, width, height);
   if (! bitmap)
     return -1;
@@ -729,8 +730,10 @@ image_create_bitmap_from_file (struct frame *f, Lisp_Object file)
 
   filename = SSDATA (found);
 
-  result = XReadBitmapFile (FRAME_X_DISPLAY (f), FRAME_X_DRAWABLE (f),
-                           filename, &width, &height, &bitmap, &xhot, &yhot);
+  result = XReadBitmapFile (FRAME_X_DISPLAY (f),
+                           dpyinfo->root_window,
+                           filename, &width, &height, &bitmap,
+                           &xhot, &yhot);
   if (result != BitmapSuccess)
     return -1;