aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorJoakim Verona2015-01-16 22:29:10 +0100
committerJoakim Verona2015-01-16 22:29:10 +0100
commit5e2255017323c54feeaaee220175d7761a3b6ed1 (patch)
tree3f843af60b826b63e12482301ce20745a95ede3e /src/lisp.h
parentb64675500decba1c707bc5d5c6d57f633934778f (diff)
parent78e6ccc4a5006272b14f352e459a6d3bf52ed07b (diff)
downloademacs-5e2255017323c54feeaaee220175d7761a3b6ed1.tar.gz
emacs-5e2255017323c54feeaaee220175d7761a3b6ed1.zip
merge master
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h37
1 files changed, 21 insertions, 16 deletions
diff --git a/src/lisp.h b/src/lisp.h
index b6608daa20e..e94e39a5d01 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -608,6 +608,7 @@ INLINE bool SUBRP (Lisp_Object);
608INLINE bool (SYMBOLP) (Lisp_Object); 608INLINE bool (SYMBOLP) (Lisp_Object);
609INLINE bool (VECTORLIKEP) (Lisp_Object); 609INLINE bool (VECTORLIKEP) (Lisp_Object);
610INLINE bool WINDOWP (Lisp_Object); 610INLINE bool WINDOWP (Lisp_Object);
611INLINE bool TERMINALP (Lisp_Object);
611INLINE struct Lisp_Save_Value *XSAVE_VALUE (Lisp_Object); 612INLINE struct Lisp_Save_Value *XSAVE_VALUE (Lisp_Object);
612INLINE struct Lisp_Symbol *(XSYMBOL) (Lisp_Object); 613INLINE struct Lisp_Symbol *(XSYMBOL) (Lisp_Object);
613INLINE void *(XUNTAG) (Lisp_Object, int); 614INLINE void *(XUNTAG) (Lisp_Object, int);
@@ -1003,6 +1004,7 @@ XWINDOW (Lisp_Object a)
1003INLINE struct terminal * 1004INLINE struct terminal *
1004XTERMINAL (Lisp_Object a) 1005XTERMINAL (Lisp_Object a)
1005{ 1006{
1007 eassert (TERMINALP (a));
1006 return XUNTAG (a, Lisp_Vectorlike); 1008 return XUNTAG (a, Lisp_Vectorlike);
1007} 1009}
1008 1010
@@ -1065,12 +1067,6 @@ builtin_lisp_symbol (int index)
1065 return make_lisp_symbol (lispsym + index); 1067 return make_lisp_symbol (lispsym + index);
1066} 1068}
1067 1069
1068INLINE Lisp_Object
1069make_lisp_proc (struct Lisp_Process *p)
1070{
1071 return make_lisp_ptr (p, Lisp_Vectorlike);
1072}
1073
1074#define XSETINT(a, b) ((a) = make_number (b)) 1070#define XSETINT(a, b) ((a) = make_number (b))
1075#define XSETFASTINT(a, b) ((a) = make_natnum (b)) 1071#define XSETFASTINT(a, b) ((a) = make_natnum (b))
1076#define XSETCONS(a, b) ((a) = make_lisp_ptr (b, Lisp_Cons)) 1072#define XSETCONS(a, b) ((a) = make_lisp_ptr (b, Lisp_Cons))
@@ -3785,16 +3781,25 @@ make_uninit_sub_char_table (int depth, int min_char)
3785 return v; 3781 return v;
3786} 3782}
3787 3783
3788extern struct Lisp_Vector *allocate_pseudovector (int, int, enum pvec_type); 3784extern struct Lisp_Vector *allocate_pseudovector (int, int, int,
3789#define ALLOCATE_PSEUDOVECTOR(typ,field,tag) \ 3785 enum pvec_type);
3790 ((typ*) \ 3786
3791 allocate_pseudovector \ 3787/* Allocate partially initialized pseudovector where all Lisp_Object
3792 (VECSIZE (typ), PSEUDOVECSIZE (typ, field), tag)) 3788 slots are set to Qnil but the rest (if any) is left uninitialized. */
3793extern struct Lisp_Hash_Table *allocate_hash_table (void); 3789
3794extern struct window *allocate_window (void); 3790#define ALLOCATE_PSEUDOVECTOR(type, field, tag) \
3795extern struct frame *allocate_frame (void); 3791 ((type *) allocate_pseudovector (VECSIZE (type), \
3796extern struct Lisp_Process *allocate_process (void); 3792 PSEUDOVECSIZE (type, field), \
3797extern struct terminal *allocate_terminal (void); 3793 PSEUDOVECSIZE (type, field), tag))
3794
3795/* Allocate fully initialized pseudovector where all Lisp_Object
3796 slots are set to Qnil and the rest (if any) is zeroed. */
3797
3798#define ALLOCATE_ZEROED_PSEUDOVECTOR(type, field, tag) \
3799 ((type *) allocate_pseudovector (VECSIZE (type), \
3800 PSEUDOVECSIZE (type, field), \
3801 VECSIZE (type), tag))
3802
3798extern bool gc_in_progress; 3803extern bool gc_in_progress;
3799extern bool abort_on_gc; 3804extern bool abort_on_gc;
3800extern Lisp_Object make_float (double); 3805extern Lisp_Object make_float (double);