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 {