diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 3 | ||||
| -rw-r--r-- | src/alloc.c | 11 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index e417ff9ee86..ed9053e851a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,8 @@ | |||
| 1 | 2007-07-10 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2007-07-10 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * alloc.c (mark_maybe_pointer): Enforce mult-of-8 alignment when using | ||
| 4 | USE_LSB_TAG. Suggested by Dmitry Antipov <dmantipov@yandex.ru>. | ||
| 5 | |||
| 3 | * fns.c (map_char_table): Use an array of int for `indices' rather than | 6 | * fns.c (map_char_table): Use an array of int for `indices' rather than |
| 4 | an array of Lisp_Objects (which are only ever integers anyway). | 7 | an array of Lisp_Objects (which are only ever integers anyway). |
| 5 | (Fmap_char_table): Update caller. | 8 | (Fmap_char_table): Update caller. |
diff --git a/src/alloc.c b/src/alloc.c index 7668309e59c..f3140da1ddc 100644 --- a/src/alloc.c +++ b/src/alloc.c | |||
| @@ -4263,9 +4263,14 @@ mark_maybe_pointer (p) | |||
| 4263 | { | 4263 | { |
| 4264 | struct mem_node *m; | 4264 | struct mem_node *m; |
| 4265 | 4265 | ||
| 4266 | /* Quickly rule out some values which can't point to Lisp data. We | 4266 | /* Quickly rule out some values which can't point to Lisp data. */ |
| 4267 | assume that Lisp data is aligned on even addresses. */ | 4267 | if ((EMACS_INT) p % |
| 4268 | if ((EMACS_INT) p & 1) | 4268 | #ifdef USE_LSB_TAG |
| 4269 | 8 /* USE_LSB_TAG needs Lisp data to be aligned on multiples of 8. */ | ||
| 4270 | #else | ||
| 4271 | 2 /* We assume that Lisp data is aligned on even addresses. */ | ||
| 4272 | #endif | ||
| 4273 | ) | ||
| 4269 | return; | 4274 | return; |
| 4270 | 4275 | ||
| 4271 | m = mem_find (p); | 4276 | m = mem_find (p); |