mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-23 06:00:41 -08:00
* lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 && __OPTIMIZE__]:
Provide a GNU C macro version that handles lisp-object unions. (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type field, to better cope with ENABLE_CHECKING and calls that modify a Lisp_Object using its old value.
This commit is contained in:
parent
7c752c8099
commit
74e49b38a8
2 changed files with 13 additions and 1 deletions
|
|
@ -15,6 +15,13 @@
|
||||||
|
|
||||||
* search.c (compile_pattern): Use NILP when checking for nil.
|
* search.c (compile_pattern): Use NILP when checking for nil.
|
||||||
|
|
||||||
|
* lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
|
||||||
|
__OPTIMIZE__]: Provide a GNU C macro version that handles
|
||||||
|
lisp-object unions.
|
||||||
|
(XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
|
||||||
|
field, to better cope with ENABLE_CHECKING and calls that modify a
|
||||||
|
Lisp_Object using its old value.
|
||||||
|
|
||||||
2000-04-04 Gerd Moellmann <gerd@gnu.org>
|
2000-04-04 Gerd Moellmann <gerd@gnu.org>
|
||||||
|
|
||||||
* window.c (compare_window_configurations): Signal an error
|
* window.c (compare_window_configurations): Signal an error
|
||||||
|
|
|
||||||
|
|
@ -424,9 +424,14 @@ extern int pure_size;
|
||||||
#define XPNTR(a) ((a).u.val)
|
#define XPNTR(a) ((a).u.val)
|
||||||
|
|
||||||
#define XSET(var, vartype, ptr) \
|
#define XSET(var, vartype, ptr) \
|
||||||
(((var).s.type = ((char) (vartype))), ((var).s.val = ((int) (ptr))))
|
(((var).s.val = ((int) (ptr))), ((var).s.type = ((char) (vartype))))
|
||||||
|
|
||||||
|
#if __GNUC__ >= 2 && defined (__OPTIMIZE__)
|
||||||
|
#define make_number(N) \
|
||||||
|
(__extension__ ({ Lisp_Object _l; _l.s.val = (N); _l.s.type = Lisp_Int; _l; }))
|
||||||
|
#else
|
||||||
extern Lisp_Object make_number ();
|
extern Lisp_Object make_number ();
|
||||||
|
#endif
|
||||||
|
|
||||||
/* During garbage collection, XGCTYPE must be used for extracting types
|
/* During garbage collection, XGCTYPE must be used for extracting types
|
||||||
so that the mark bit is ignored. XMARKBIT access the markbit.
|
so that the mark bit is ignored. XMARKBIT access the markbit.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue