]> git.eshelyaron.com Git - emacs.git/commitdiff
* fns.c: Check that character arg fits in 'int'.
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 Jun 2011 16:04:07 +0000 (09:04 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 Jun 2011 16:04:07 +0000 (09:04 -0700)
src/ChangeLog
src/fns.c

index ee582c4e4a060a7346c51f51b37eb3f7b6ec8c28..4ce871b7288db052fa90a794a57872357661e3da 100644 (file)
@@ -3,6 +3,7 @@
        * fns.c (Ffillarray): Don't assume bool vector size fits in 'int'.
        Use much-faster test for byte-length change.
        Don't assume string byte-length fits in 'int'.
+       Check that character arg fits in 'int'.
 
        * alloc.c (Fmake_bool_vector): Avoid unnecessary multiplication.
 
index 51b753b31347430b8dcc4fea24c3dc85c4457a67..702ecbd7c6394c42dcebdc5f3b9b5a5e19bb98a3 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -2141,7 +2141,6 @@ ARRAY is a vector, string, char-table, or bool-vector.  */)
   (Lisp_Object array, Lisp_Object item)
 {
   register EMACS_INT size, idx;
-  int charval;
 
   if (VECTORP (array))
     {
@@ -2161,8 +2160,9 @@ ARRAY is a vector, string, char-table, or bool-vector.  */)
   else if (STRINGP (array))
     {
       register unsigned char *p = SDATA (array);
-      CHECK_NUMBER (item);
-      charval = XINT (item);
+      int charval;
+      CHECK_CHARACTER (item);
+      charval = XFASTINT (item);
       size = SCHARS (array);
       if (STRING_MULTIBYTE (array))
        {