]> git.eshelyaron.com Git - emacs.git/commit
Fix union Lisp_Fwd * alignment bug
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 1 Apr 2019 18:54:23 +0000 (11:54 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 1 Apr 2019 19:02:37 +0000 (12:02 -0700)
commit9287813da1ae9076f29be111674d1795bee66447
treed48781deb3ccc24f40de2944efdccc6a84280fd5
parent197fbfc71f49b307baa3831a30732c3a0c4c7420
Fix union Lisp_Fwd * alignment bug

It's not portable to cast (e.g.) struct Lisp_Objfwd * to union
Lisp_Fwd * and then back again, because the compiler can then assume
that the pointer is aligned for union Lisp_Fwd * when accessing
the struct Lisp_Objfwd * components, and this assumption might
be incorrect becase we don't force that alignment.
* src/lisp.h (lispfwd): New type, replacing ...
(union Lisp_Fwd): ... this type, which was removed.
All uses changed.
(SET_SYMBOL_FWD): 2nd arg is now void *, not lispfwd.
All uses changed (casts no longer needed; they were
not portable anyway).
src/buffer.c
src/data.c
src/lisp.h
src/lread.c
src/pdumper.c