Mercurial > emacs
changeset 28469:f66f2b4d5eb7
* alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand non-union-type
versions of XMARK and friends here, because XMARK and friends won't work on an
integer field if NO_UNION_TYPE is not defined.
(make_number): Define as a function if it's not defined as a macro.
author | Ken Raeburn <raeburn@raeburn.org> |
---|---|
date | Sun, 02 Apr 2000 01:52:58 +0000 |
parents | 7237fe6b37af |
children | 93996c44b23a |
files | src/ChangeLog src/alloc.c |
diffstat | 2 files changed, 17 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/src/alloc.c Sat Apr 01 14:42:59 2000 +0000 +++ b/src/alloc.c Sun Apr 02 01:52:58 2000 +0000 @@ -97,9 +97,9 @@ /* Mark, unmark, query mark bit of a Lisp string. S must be a pointer to a struct Lisp_String. */ -#define MARK_STRING(S) XMARK ((S)->size) -#define UNMARK_STRING(S) XUNMARK ((S)->size) -#define STRING_MARKED_P(S) XMARKBIT ((S)->size) +#define MARK_STRING(S) ((S)->size |= MARKBIT) +#define UNMARK_STRING(S) ((S)->size &= ~MARKBIT) +#define STRING_MARKED_P(S) ((S)->size & MARKBIT) /* Value is the number of bytes/chars of S, a pointer to a struct Lisp_String. This must be used instead of STRING_BYTES (S) or @@ -798,7 +798,20 @@ } \ } while (0) - + +/* Number support. If NO_UNION_TYPE isn't in effect, we + can't create number objects in macros. */ +#ifndef make_number +Lisp_Object +make_number (n) + int n; +{ + Lisp_Object obj; + obj.s.val = n; + obj.s.type = Lisp_Int; + return obj; +} +#endif /*********************************************************************** String Allocation