summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2001-01-09 20:11:16 +0000
committerGerd Moellmann <gerd@gnu.org>2001-01-09 20:11:16 +0000
commitac786bbd3f9f9b512370ee897bbbaf7af31d9987 (patch)
tree6354bf7af261f917530b2bf327e80816028d4e8e
parent455b192dcefaba9308da94bf4d241691ec97e7af (diff)
downloademacs-ac786bbd3f9f9b512370ee897bbbaf7af31d9987.tar.gz
(STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call
function string_bytes. (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
-rw-r--r--src/lisp.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h
index f2096a5f616..b1951ea4365 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -26,6 +26,12 @@ Boston, MA 02111-1307, USA. */
#define P_(proto) ()
#endif
+/* Define this temporarily to hunt a bug. If defined, the size of
+ strings is redundantly recorded in sdata structures so that it can
+ be compared to the sizes recorded in Lisp strings. */
+
+#define GC_CHECK_STRING_BYTES 1
+
/* These are default choices for the types to use. */
#ifdef _LP64
@@ -620,9 +626,20 @@ struct Lisp_Cons
(XSTRING (STR)->size_byte >= 0)
/* Return the length in bytes of STR. */
+
+#ifdef GC_CHECK_STRING_BYTES
+
+struct Lisp_String;
+extern int string_bytes P_ ((struct Lisp_String *));
+#define STRING_BYTES(S) string_bytes ((S))
+
+#else /* not GC_CHECK_STRING_BYTES */
+
#define STRING_BYTES(STR) \
((STR)->size_byte < 0 ? (STR)->size : (STR)->size_byte)
+#endif /* not GC_CHECK_STRING_BYTES */
+
/* Set the length in bytes of STR. */
#define SET_STRING_BYTES(STR, SIZE) ((STR)->size_byte = (SIZE))