* xfns.c (make_invisible_cursor): Don't return garbage
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 2 Apr 2011 02:06:43 +0000 (19:06 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 2 Apr 2011 02:06:43 +0000 (19:06 -0700)
if XCreateBitmapFromData fails.

src/ChangeLog
src/xfns.c

index 17cc06b..b2a337b 100644 (file)
@@ -1,5 +1,8 @@
 2011-04-02  Paul Eggert  <eggert@cs.ucla.edu>
 
+       * xfns.c (make_invisible_cursor): Don't return garbage
+       if XCreateBitmapFromData fails.
+
        * xselect.c (x_get_local_selection, x_handle_property_notify):
        Remove vars that are set but not used.
 
index 39c77b8..8e56396 100644 (file)
@@ -855,19 +855,20 @@ make_invisible_cursor (struct frame *f)
   static char const no_data[] = { 0 };
   Pixmap pix;
   XColor col;
-  Cursor c;
+  Cursor c = 0;
 
   x_catch_errors (dpy);
   pix = XCreateBitmapFromData (dpy, FRAME_X_DISPLAY_INFO (f)->root_window,
                                no_data, 1, 1);
   if (! x_had_errors_p (dpy) && pix != None)
     {
+      Cursor pixc;
       col.pixel = 0;
       col.red = col.green = col.blue = 0;
       col.flags = DoRed | DoGreen | DoBlue;
-      c = XCreatePixmapCursor (dpy, pix, pix, &col, &col, 0, 0);
-      if (x_had_errors_p (dpy) || c == None)
-        c = 0;
+      pixc = XCreatePixmapCursor (dpy, pix, pix, &col, &col, 0, 0);
+      if (! x_had_errors_p (dpy) && pixc != None)
+        c = pixc;
       XFreePixmap (dpy, pix);
     }