changeset 86160:1ede747999c6

* 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
author Stefan Monnier <monnier@iro.umontreal.ca>
date Fri, 16 Nov 2007 20:36:34 +0000
parents c679b91efdfa
children 3408ab8b4152
files src/ChangeLog src/alloc.c src/lisp.h
diffstat 3 files changed, 18 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Nov 16 18:50:35 2007 +0000
+++ b/src/ChangeLog	Fri Nov 16 20:36:34 2007 +0000
@@ -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.
 
--- a/src/alloc.c	Fri Nov 16 18:50:35 2007 +0000
+++ b/src/alloc.c	Fri Nov 16 20:36:34 2007 +0000
@@ -2967,7 +2967,7 @@
 
 /* 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 @@
   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)
--- a/src/lisp.h	Fri Nov 16 18:50:35 2007 +0000
+++ b/src/lisp.h	Fri Nov 16 20:36:34 2007 +0000
@@ -348,7 +348,8 @@
   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 @@
 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));