(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-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.
/* Allocate other vector-like structures. */
-static struct Lisp_Vector *
+struct Lisp_Vector *
allocate_pseudovector (memlen, lisplen, tag)
int memlen, lisplen;
EMACS_INT 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)
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
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));