* alloc.c (ALLOCATE_PSEUDOVECTOR): Move to lisp.h.
authorStefan Monnier <monnier@iro.umontreal.ca>
Fri, 16 Nov 2007 20:36:34 +0000 (20:36 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Fri, 16 Nov 2007 20:36:34 +0000 (20:36 +0000)
(allocate_pseudovector): Make non-static.
* lisp.h (enum pvec_type): New tag PVEC_OTHER.
(allocate_pseudovector): Declare.
(ALLOCATE_PSEUDOVECTOR): Move from alloc.c

src/ChangeLog
src/alloc.c
src/lisp.h

index f0a2e29..bdc58ad 100644 (file)
@@ -1,7 +1,15 @@
+2007-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * alloc.c (ALLOCATE_PSEUDOVECTOR): Move to lisp.h.
+       (allocate_pseudovector): Make non-static.
+       * lisp.h (enum pvec_type): New tag PVEC_OTHER.
+       (allocate_pseudovector): Declare.
+       (ALLOCATE_PSEUDOVECTOR): Move from alloc.c
+
 2007-11-15  Andreas Schwab  <schwab@suse.de>
 
-       * editfns.c (Fformat): Correctly format EMACS_INT values.  Also
-       take precision into account when formatting an integer.
+       * editfns.c (Fformat): Correctly format EMACS_INT values.
+       Also take precision into account when formatting an integer.
 
        * keyboard.c (Fevent_symbol_parse_modifiers): Fix declaration.
 
index 12b7ac5..5256525 100644 (file)
@@ -2967,7 +2967,7 @@ allocate_vector (nslots)
 
 /* Allocate other vector-like structures.  */
 
-static struct Lisp_Vector *
+struct Lisp_Vector *
 allocate_pseudovector (memlen, lisplen, tag)
      int memlen, lisplen;
      EMACS_INT tag;
@@ -2983,10 +2983,6 @@ allocate_pseudovector (memlen, lisplen, tag)
   XSETPVECTYPE (v, tag);       /* Add the appropriate tag.  */
   return v;
 }
-#define ALLOCATE_PSEUDOVECTOR(typ,field,tag)                           \
-  ((typ*)                                                              \
-   allocate_pseudovector                                               \
-       (VECSIZE (typ), PSEUDOVECSIZE (typ, field), tag))
 
 struct Lisp_Hash_Table *
 allocate_hash_table (void)
index 89c26b4..0d351e9 100644 (file)
@@ -348,7 +348,8 @@ enum pvec_type
   PVEC_BUFFER = 0x20000,
   PVEC_HASH_TABLE = 0x40000,
   PVEC_TERMINAL = 0x80000,
-  PVEC_TYPE_MASK = 0xffe00
+  PVEC_OTHER = 0x100000,
+  PVEC_TYPE_MASK = 0x1ffe00
 
 #if 0 /* This is used to make the value of PSEUDOVECTOR_FLAG available to
         GDB.  It doesn't work on OS Alpha.  Moved to a variable in
@@ -2606,6 +2607,11 @@ EXFUN (Fmake_char_table, 2);
 extern Lisp_Object make_sub_char_table P_ ((Lisp_Object));
 extern Lisp_Object Qchar_table_extra_slots;
 extern struct Lisp_Vector *allocate_vector P_ ((EMACS_INT));
+extern struct Lisp_Vector *allocate_pseudovector P_ ((int memlen, int lisplen, EMACS_INT tag));
+#define ALLOCATE_PSEUDOVECTOR(typ,field,tag)                           \
+  ((typ*)                                                              \
+   allocate_pseudovector                                               \
+       (VECSIZE (typ), PSEUDOVECSIZE (typ, field), tag))
 extern struct Lisp_Vector *allocate_other_vector P_ ((EMACS_INT));
 extern struct Lisp_Hash_Table *allocate_hash_table P_ ((void));
 extern struct window *allocate_window P_ ((void));