summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2023-04-28 11:47:46 +0800
committerPo Lu <luangruo@yahoo.com>2023-04-28 11:47:46 +0800
commita40f18162377d2f9a78d7443fd0f8106c8c28c3d (patch)
tree03c95f87177c23ef4a296ea91c6f3f7178cc72c0 /src
parent44ebd9cbd56b820ad5b014b442b5a9142e8cac89 (diff)
downloademacs-a40f18162377d2f9a78d7443fd0f8106c8c28c3d.tar.gz
Fix two crashes upon startup
* 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.
Diffstat (limited to 'src')
-rw-r--r--src/image.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/image.c b/src/image.c
index e78c0abb0db..8ee802a9d62 100644
--- a/src/image.c
+++ b/src/image.c
@@ -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;