]> git.eshelyaron.com Git - emacs.git/commit
Avoid some false matches in mark_maybe_pointer
authorPaul Eggert <eggert@cs.ucla.edu>
Mon, 31 Aug 2020 06:40:11 +0000 (23:40 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Mon, 31 Aug 2020 07:05:56 +0000 (00:05 -0700)
commitcf95bb0213908a4caab65dccfa67b4f1572babe2
treeb1947e6458d3c6fb992320deee00884c80b2c949
parentaa1b586a1afaa88e5a9521a7640feefc2c12f009
Avoid some false matches in mark_maybe_pointer

This lets Emacs avoid marking some garbage as if it were in use.
On one test platform (RHEL 7.8, Intel Xeon Silver 4116) it
sped up ‘cd lisp; make compile-always’ by a bit over 1%.
* src/alloc.c (live_string_holding, live_cons_holding)
(live_symbol_holding, live_large_vector_holding)
(live_small_vector_holding):
Count only pointers that point to a struct component,
or are a tagged pointer to the start of the struct.
Exception: for non-bool-vector pseudovectors,
count any pointer past the header, since it’s too much
of a pain to write code for every pseudovector.
(live_vector_pointer): New function.
src/alloc.c