diff src/event-gtk.c @ 3949:33b9323388c5

[xemacs-hg @ 2007-05-12 10:59:15 by aidan] Zero out device modifier map after freeing it, X11, GTK.
author aidan
date Sat, 12 May 2007 10:59:17 +0000
parents ade0c13d91a3
children bc4f2511bbea
line wrap: on
line diff
--- a/src/event-gtk.c	Sat May 12 10:17:09 2007 +0000
+++ b/src/event-gtk.c	Sat May 12 10:59:17 2007 +0000
@@ -1863,7 +1863,14 @@
   xd->lock_interpretation = 0;
 
   if (map)
-    XFreeModifiermap (map);
+    {
+      XFreeModifiermap (xd->x_modifier_keymap);
+      /* Set it to NULL in case we receive two MappingModifier events in a
+         row, and the second is processed during some CHECK_QUITs within
+         x_reset_key_mapping. If that happens, XFreeModifierMap will be
+         called twice on the same map, and we crash.  */
+      xd->x_modifier_keymap = NULL;
+    }
 
   gtk_reset_key_mapping (d);