diff src/alloc.c @ 165:5a88923fcbfe r20-3b9

Import from CVS: tag r20-3b9
author cvs
date Mon, 13 Aug 2007 09:44:42 +0200
parents 0132846995bd
children 15872534500d
line wrap: on
line diff
--- a/src/alloc.c	Mon Aug 13 09:43:39 2007 +0200
+++ b/src/alloc.c	Mon Aug 13 09:44:42 2007 +0200
@@ -39,6 +39,7 @@
 
 #include <config.h>
 #include "lisp.h"
+#include "sysdep.h"
 
 #ifndef standalone
 #include "backtrace.h"
@@ -179,10 +180,10 @@
 static long pureptr;
 
 #define PURIFIED(ptr)							\
-   ((PNTR_COMPARISON_TYPE) (ptr) <					\
-    (PNTR_COMPARISON_TYPE) (PUREBEG + PURESIZE) &&			\
-    (PNTR_COMPARISON_TYPE) (ptr) >=					\
-    (PNTR_COMPARISON_TYPE) PUREBEG)
+   ((uintptr_t) (ptr) <					\
+    (uintptr_t) (PUREBEG + PURESIZE) &&			\
+    (uintptr_t) (ptr) >=					\
+    (uintptr_t) PUREBEG)
 
 /* Non-zero if pureptr > PURESIZE; accounts for excess purespace needs. */
 static long pure_lossage;
@@ -1025,16 +1026,11 @@
 */
        (int nargs, Lisp_Object *args))
 {
-  Lisp_Object len, val, val_tail;
-
-  len = make_int (nargs);
-  val = Fmake_list (len, Qnil);
-  val_tail = val;
-  while (!NILP (val_tail))
-    {
-      XCAR (val_tail) = *args++;
-      val_tail = XCDR (val_tail);
-    }
+  Lisp_Object val = Qnil;
+  Lisp_Object *argp = args + nargs;
+
+  while (nargs-- > 0)
+    val = Fcons (*--argp, val);
   return val;
 }