]> code.delx.au - gnu-emacs/commit
malloc.h hygiene
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 27 Jan 2016 07:00:10 +0000 (23:00 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 27 Jan 2016 07:01:48 +0000 (23:01 -0800)
commitb88e9cded7ae3756e3a2ec4a23e8df352a0239f9
tree201806e4c770722fa29ef77365030df930751d06
parentcf17002326ba29d78f20118e0016dbd32fc3527e
malloc.h hygiene

This attempts to future-proof Emacs a bit against possible glibc
changes, by having Emacs use <malloc.h> declarations rather than
coding them up by hand.  Problem noted by Florian Weimer in:
https://sourceware.org/ml/libc-alpha/2016-01/msg00777.html
Implement this mainly by moving malloc.h-related functions from
emacs.c (which does not include <malloc.h>) to alloc.c (which does).
* src/alloc.c (my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]:
New function.
The remaining changes to this file apply only if DOUG_LEA_MALLOC.
(alloc_unexec_pre, alloc_unexec_post): New functions.
(malloc_initialize_hook): Use my_heap_start and alloc_unexec_post.
(__MALLOC_HOOK_VOLATILE): New macro, if not already defined.
(__malloc_initialize_hook): Use it.
(malloc_state_ptr, malloc_initialize_hook, __malloc_initialize_hook):
Move here from ...
* src/emacs.c: ... here.
(malloc_get_state, malloc_set_state): Remove extern decls.
(my_heap_start) [DOUG_LEA_MALLOC || GNU_LINUX]: Remove static var.
All uses changed to similarly-named new function.
(Fdump_emacs): Use new functions alloc_unexec_pre, alloc_unexec_post.
* src/lisp.h (my_heap_start, alloc_unexec_pre, alloc_unexec_post):
New decls.
src/alloc.c
src/emacs.c
src/lisp.h