diff src/keymap.c @ 18613:614b916ff5bf

Fix bugs with inappropriate mixing of Lisp_Object with int.
author Richard M. Stallman <rms@gnu.org>
date Fri, 04 Jul 1997 20:44:52 +0000
parents c9bd973ca168
children 2195c8746e05
line wrap: on
line diff
--- a/src/keymap.c	Fri Jul 04 20:43:49 1997 +0000
+++ b/src/keymap.c	Fri Jul 04 20:44:52 1997 +0000
@@ -538,8 +538,7 @@
 	  key = Fcdr (object);
 	  if (INTEGERP (key) && (XINT (key) & meta_modifier))
 	    {
-	      object = access_keymap (map, make_number (meta_prefix_char),
-				      0, 0);
+	      object = access_keymap (map, meta_prefix_char, 0, 0);
 	      map = get_keymap_1 (object, 0, autoload);
 	      object = access_keymap (map,
 				      make_number (XINT (key) & ~meta_modifier),
@@ -1515,8 +1514,8 @@
 
 			  element = thisseq;
 			  tem = Fvconcat (1, &element);
-			  XVECTOR (tem)->contents[XINT (last)]
-			    = XINT (elt) | meta_modifier;
+			  XSETFASTINT (XVECTOR (tem)->contents[XINT (last)],
+				       XINT (elt) | meta_modifier);
 
 			  /* This new sequence is the same length as
 			     thisseq, so stick it in the list right
@@ -2746,7 +2745,7 @@
   int starting_i;
 
   if (indices == 0)
-    indices = (Lisp_Object *) alloca (3 * sizeof (Lisp_Object));
+    indices = (int *) alloca (3 * sizeof (int));
 
   definition = Qnil;