# HG changeset patch # User Ken Raeburn # Date 954640378 0 # Node ID f66f2b4d5eb7fd10dc858ae5d4dadc38aa3466b8 # Parent 7237fe6b37afcd54d826b3f7a5c78df4e824ff71 * 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. diff -r 7237fe6b37af -r f66f2b4d5eb7 src/ChangeLog Binary file src/ChangeLog has changed diff -r 7237fe6b37af -r f66f2b4d5eb7 src/alloc.c --- 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