]> git.eshelyaron.com Git - emacs.git/commitdiff
* alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand non-union-type
authorKen Raeburn <raeburn@raeburn.org>
Sun, 2 Apr 2000 01:52:58 +0000 (01:52 +0000)
committerKen Raeburn <raeburn@raeburn.org>
Sun, 2 Apr 2000 01:52:58 +0000 (01:52 +0000)
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.

src/ChangeLog
src/alloc.c

index 20655598b1d3c70a0412493e9ddf4d3653910233..4622d9e6699d07b59064dfb0a82b6d780f3a8418 100644 (file)
@@ -1,3 +1,12 @@
+2000-04-01  Ken Raeburn  <raeburn@gnu.org>
+
+       * 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.
+
 2000-04-01  Gerd Moellmann  <gerd@gnu.org>
 
        * term.c (TN_no_color_video): New variable.
index a32718d82f45f50a81114c7ba0045ba126ff6789..f6f5c2c0ff882c4deb545806f1adc7907787774e 100644 (file)
@@ -97,9 +97,9 @@ static __malloc_size_t bytes_used_when_full;
 /* 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 @@ mark_interval_tree (tree)
      }                                                 \
   } while (0)
 
-
+\f
+/* 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
 \f
 /***********************************************************************
                          String Allocation