]> git.eshelyaron.com Git - emacs.git/commit
Fix C-h C-h bug due to mutating a hash key
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 15 Feb 2020 23:12:34 +0000 (15:12 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 15 Feb 2020 23:18:28 +0000 (15:18 -0800)
commit3480071dfab30eaca7f1d014600b864d2ea22f62
tree9cf1ad2975d575710c2bb5c84a6a28681b3e398a
parentccb15ada750ed1a2ed67bc58458022b9d96a9d44
Fix C-h C-h bug due to mutating a hash key

Problem reported by Federico Tedin (Bug#39529).
The problem was that dumping uses a hash table based on 'equal'
when purecopying compiled objects, but then modifies the compiled
objects while they are keys in the table.  This no-no was uncovered
by the sxhash fixes in 2020-01-07T19:23:11Z!eggert@cs.ucla.edu.
Eli Zaretski pinpointed the patch that triggered the bug.
* src/lread.c (read1): When reading a compiled object, replace
its docstring with a unique negative integer instead of with 0,
so that purecopy doesn’t unify it with some other compiled object
that happens to have the same Lisp code.
src/lread.c