diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/alloc.c | 16 |
2 files changed, 16 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 7a97a066f12..480d163d18d 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,9 @@ | |||
| 1 | 2011-04-19 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-04-19 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | * alloc.c (SDATA_SIZE) [!GC_CHECK_STRING_BYTES]: Avoid runtime check | ||
| 4 | in the common case where SDATA_DATA_OFFSET is a multiple of Emacs | ||
| 5 | word size. | ||
| 6 | |||
| 3 | * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10. | 7 | * gnutls.c: Fix problems found by GCC 4.6.0 on Ubuntu 10.10. |
| 4 | (gnutls_make_error): Rename local to avoid shadowing. | 8 | (gnutls_make_error): Rename local to avoid shadowing. |
| 5 | (gnutls_emacs_global_deinit): ifdef out; not used. | 9 | (gnutls_emacs_global_deinit): ifdef out; not used. |
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 */ |