Mercurial > emacs
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 81797:cf9acee3da75 | 81798:3b39669cb653 |
|---|---|
| 4261 mark_maybe_pointer (p) | 4261 mark_maybe_pointer (p) |
| 4262 void *p; | 4262 void *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); |
| 4272 if (m != MEM_NIL) | 4277 if (m != MEM_NIL) |
| 4273 { | 4278 { |
