diff options
author | Gerd Moellmann <gerd@gnu.org> | 2001-01-09 20:11:16 +0000 |
---|---|---|
committer | Gerd Moellmann <gerd@gnu.org> | 2001-01-09 20:11:16 +0000 |
commit | ac786bbd3f9f9b512370ee897bbbaf7af31d9987 (patch) | |
tree | 6354bf7af261f917530b2bf327e80816028d4e8e | |
parent | 455b192dcefaba9308da94bf4d241691ec97e7af (diff) | |
download | emacs-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.h | 17 |
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)) |