Mercurial > emacs
diff src/lisp.h @ 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 | e12efff1fa77 |
children | d28f1d2b83d5 |
line wrap: on
line diff
--- 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));