aboutsummaryrefslogtreecommitdiffstats
path: root/src/alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/alloc.c')
-rw-r--r--src/alloc.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 82be8a903b4..8be6371d247 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -1643,10 +1643,18 @@ static char const string_overrun_cookie[GC_STRING_OVERRUN_COOKIE_SIZE] =
1643 1643
1644#else /* not GC_CHECK_STRING_BYTES */ 1644#else /* not GC_CHECK_STRING_BYTES */
1645 1645
1646#define SDATA_SIZE(NBYTES) \ 1646/* The 'max' reserves space for the nbytes union member even when NBYTES + 1 is
1647 ((SDATA_DATA_OFFSET \ 1647 less than the size of that member. The 'max' is not needed when
1648 + max (NBYTES, sizeof (EMACS_INT) - 1) + 1 \ 1648 SDATA_DATA_OFFSET is a multiple of sizeof (EMACS_INT), because then the
1649 + sizeof (EMACS_INT) - 1) \ 1649 alignment code reserves enough space. */
1650
1651#define SDATA_SIZE(NBYTES) \
1652 ((SDATA_DATA_OFFSET \
1653 + (SDATA_DATA_OFFSET % sizeof (EMACS_INT) == 0 \
1654 ? NBYTES \
1655 : max (NBYTES, sizeof (EMACS_INT) - 1)) \
1656 + 1 \
1657 + sizeof (EMACS_INT) - 1) \
1650 & ~(sizeof (EMACS_INT) - 1)) 1658 & ~(sizeof (EMACS_INT) - 1))
1651 1659
1652#endif /* not GC_CHECK_STRING_BYTES */ 1660#endif /* not GC_CHECK_STRING_BYTES */