Mercurial > emacs
diff src/alloc.c @ 81798:3b39669cb653
(mark_maybe_pointer): Enforce mult-of-8 alignment when using
USE_LSB_TAG. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
| author | Stefan Monnier <monnier@iro.umontreal.ca> |
|---|---|
| date | Tue, 10 Jul 2007 18:00:44 +0000 |
| parents | 1842d7137ff2 |
| children | a4517fcdd6e1 |
line wrap: on
line diff
--- a/src/alloc.c Tue Jul 10 17:47:32 2007 +0000 +++ b/src/alloc.c Tue Jul 10 18:00:44 2007 +0000 @@ -4263,9 +4263,14 @@ { struct mem_node *m; - /* Quickly rule out some values which can't point to Lisp data. We - assume that Lisp data is aligned on even addresses. */ - if ((EMACS_INT) p & 1) + /* Quickly rule out some values which can't point to Lisp data. */ + if ((EMACS_INT) p % +#ifdef USE_LSB_TAG + 8 /* USE_LSB_TAG needs Lisp data to be aligned on multiples of 8. */ +#else + 2 /* We assume that Lisp data is aligned on even addresses. */ +#endif + ) return; m = mem_find (p);
