]> git.eshelyaron.com Git - emacs.git/commit
Improve fix for Bug#33014
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 31 Oct 2018 03:57:46 +0000 (20:57 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 31 Oct 2018 03:58:48 +0000 (20:58 -0700)
commitcf486a7a920d3d95fa9aa98d7b03ebc61b17518a
treefa50f7b87708463c36e714078012706b4cefdb23
parentb9cbdd045f2d086390b3d0e4412ebac0b19aaead
Improve fix for Bug#33014

Although the previously-applied fix worked for its platform,
it doesn’t suffice in general.
* src/bytecode.c (exec_byte_code): Save VECTOR into stack slot
so that it survives GC.  The stack slot was otherwise unused,
so this doesn’t cost us memory, only a store insn.
* src/eval.c (Ffuncall): Do not make FUN volatile, reverting
2018-10-14T19:12:04Z!gazally@runbox.com.  Adding ‘volatile’
does not suffice, since storage for a volatile local can be
reclaimed after its last access (e.g., by tail recursion
elimination), which would make VECTOR invisible to GC.
src/bytecode.c
src/eval.c