(Fmake_list): Add a QUIT in the loop; unroll the loop.
authorGerd Moellmann <gerd@gnu.org>
Wed, 31 Jan 2001 12:22:58 +0000 (12:22 +0000)
committerGerd Moellmann <gerd@gnu.org>
Wed, 31 Jan 2001 12:22:58 +0000 (12:22 +0000)
src/ChangeLog
src/alloc.c

index b977060..ad4cbfa 100644 (file)
@@ -1,3 +1,7 @@
+2001-01-31  Gerd Moellmann  <gerd@gnu.org>
+
+       * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
+
 2001-01-31  Dave Love  <fx@gnu.org>
 
        * textprop.c (Fset_text_properties): Fix newline in doc string.
index 4134d26..4affa42 100644 (file)
@@ -2142,8 +2142,38 @@ DEFUN ("make-list", Fmake_list, Smake_list, 2, 2, 0,
   size = XFASTINT (length);
 
   val = Qnil;
-  while (size-- > 0)
-    val = Fcons (init, val);
+  while (size > 0)
+    {
+      val = Fcons (init, val);
+      --size;
+
+      if (size > 0)
+       {
+         val = Fcons (init, val);
+         --size;
+      
+         if (size > 0)
+           {
+             val = Fcons (init, val);
+             --size;
+      
+             if (size > 0)
+               {
+                 val = Fcons (init, val);
+                 --size;
+      
+                 if (size > 0)
+                   {
+                     val = Fcons (init, val);
+                     --size;
+                   }
+               }
+           }
+       }
+
+      QUIT;
+    }
+  
   return val;
 }